Pridobivanje največje vrednosti iz vrste oštevilčenja je pogosta naloga, s katero se srečujejo razvijalci. To je potrebno v scenarijih, kjer morate potrditi uporabniški vnos ali obravnavati določene vire na podlagi vrednosti enum. C# nudi preprost način za dosego tega z uporabo razreda Enum in malo LINQ.
Raziščimo rešitev, s katero je pridobivanje največje vrednosti oštevilčenja preprosto kot pita.
javni enum MyEnum
{
Možnost1 = 1,
Možnost2 = 2,
Možnost 3 = 3
}
...
public int GetMaxEnumValue()
{
vrni Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Ta kratek del kode opravi vse delo pri pridobivanju najvišje vrednosti v enum. Toda kako deluje?
Poglobite se v kodo
`Enum.GetValues(typeof(MyEnum))` je prvi kritični del, ki ga je treba razumeti. Ta vgrajena metoda .NET vrne matriko, ki vsebuje vrednosti konstant v določenem oštevilčevanju. Vrsta oštevilčenja se kot parameter posreduje metodi s ključno besedo `typeof`.
Ko imamo matriko, jo moramo pretvoriti v cela števila. To se naredi z uporabo .Cast(), ki je del LINQ (Language Integrated Query). LINQ je nabor tehnik in metod v .NET, ki nam omogoča delo s podatki na bolj intuitiven in prilagodljiv način.
Po pretvorbi vrednosti v cela števila je pridobivanje največje vrednosti tako preprosto kot klic metode .Max(), še enega odličnega orodja, ki ga ponuja LINQ. Ta metoda vrne največjo vrednost v zbirki vrednosti int.
Izkoriščanje knjižnic Enum in LINQ
Razred Enum je del sistemskega imenskega prostora v .NET in ponuja več statičnih metod za delo z enumeracijami. To je knjižnica, na katero morate iti, ko morate izvesti katero koli operacijo, povezano s tipi enum.
Po drugi strani pa je LINQ, del imenskega prostora System.Linq, ena najmočnejših funkcij C#. Zagotavlja različne metode za učinkovito obdelavo zbirk, kot je pridobivanje najvišjih, najmanjših ali povprečnih vrednosti, razvrščanje in filtriranje podatkov.
Preberi več