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ฤ