Marrja e vlerës maksimale nga një lloj numërimi është një detyrë e zakonshme me të cilën përballen zhvilluesit. Kjo kërkohet në skenarët ku ju duhet të vërtetoni hyrjen e përdoruesit ose të trajtoni burime të caktuara bazuar në vlerën e numrit. C# ofron një mënyrë të drejtpërdrejtë për ta arritur këtë duke përdorur klasën Enum dhe pak LINQ.
Le të shqyrtojmë zgjidhjen që e bën marrjen e vlerës maksimale të një numërimi aq të lehtë sa byreku.
numër publik MyEnum
{
Opsioni 1 = 1,
Opsioni 2 = 2,
Opsioni 3 = 3
}
...
int publike GetMaxEnumValue()
{
ktheje Enum.GetValues(lloji(MyEnum)).Cast().Max();
}
Kjo pjesë e shkurtër e kodit bën të gjithë punën për të marrë vlerën më të lartë në numër. Por si funksionon?
Zhytje e thellë në kod
`Enum.GetValues(typeof(MyEnum))` është pjesa e parë kritike për t'u kuptuar. Kjo metodë e integruar .NET kthen një Array që përmban vlerat e konstanteve në një numërim të caktuar. Lloji i numërimit i kalohet si parametër metodës duke përdorur fjalën kyçe `typeof`.
Pasi të kemi grupin, duhet ta hedhim atë në numra të plotë. Kjo bëhet duke përdorur .Cast() metodë e cila është pjesë e LINQ (Language Integrated Query). LINQ është një grup teknikash dhe metodash në .NET që na lejon të punojmë me të dhënat në një mënyrë më intuitive dhe fleksibël.
Pas hedhjes së vlerave në numra të plotë, marrja e vlerës maksimale është aq e thjeshtë sa thirrja e metodës .Max(), një tjetër mjet i shkëlqyer i ofruar nga LINQ. Kjo metodë kthen vlerën maksimale në një koleksion vlerash int.
Përdorimi i Bibliotekave Enum dhe LINQ
Klasa Enum është pjesë e hapësirës së emrave të Sistemit në .NET dhe ofron disa metoda statike për të punuar me enumeracione. Është biblioteka kryesore kur ju duhet të kryeni ndonjë operacion që lidhet me llojet e numërimit.
Nga ana tjetër, LINQ, pjesë e hapësirës së emrave System.Linq, është një nga veçoritë më të fuqishme të C#. Ai ofron metoda të ndryshme për të trajtuar në mënyrë efektive koleksionet, të tilla si marrja e vlerave maksimale, minimale ose mesatare, renditja dhe filtrimi i të dhënave.
Lexo më shumë