Dobivanje maksimalne vrijednosti iz tipa enumeracije ฤest je zadatak s kojim se programeri susreฤu. Ovo je potrebno u scenarijima u kojima morate potvrditi korisniฤki unos ili rukovati odreฤenim resursima na temelju enum vrijednosti. C# pruลพa jednostavan naฤin da se to postigne koriลกtenjem klase Enum i malo LINQ-a.
Istraลพimo rjeลกenje koje dohvaฤanje maksimalne vrijednosti enumeracije ฤini jednostavnim poput pite.
javna enum MyEnum
{
Opcija 1 = 1,
Opcija 2 = 2,
Opcija 3 = 3
}
...
public int GetMaxEnumValue()
{
return Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Ovaj kratki dio koda obavlja sav posao dohvaฤanja najveฤe vrijednosti u enumu. Ali kako to funkcionira?
Duboko zaronite u kod
`Enum.GetValues(typeof(MyEnum))` je prvi kritiฤni dio koji treba razumjeti. Ova ugraฤena .NET metoda vraฤa niz koji sadrลพi vrijednosti konstanti u odreฤenom enumeriranju. Tip nabrajanja prosljeฤuje se kao parametar metodi pomoฤu kljuฤne rijeฤi `typeof`.
Kada imamo niz, moramo ga pretvoriti u cijele brojeve. To se radi pomoฤu .Cast() metoda koja je dio LINQ (Language Integrated Query). LINQ je skup tehnika i metoda u .NET-u koji nam omoguฤuje rad s podacima na intuitivniji i fleksibilniji naฤin.
Nakon pretvaranja vrijednosti u cijele brojeve, dobivanje maksimalne vrijednosti jednostavno je poput pozivanja metode .Max(), joลก jednog sjajnog alata koji pruลพa LINQ. Ova metoda vraฤa maksimalnu vrijednost u kolekciji int vrijednosti.
Iskoriลกtavanje biblioteka Enum i LINQ
Klasa Enum dio je imenskog prostora sustava u .NET-u i pruลพa nekoliko statiฤkih metoda za rad s enumeracijama. To je knjiลพnica koju trebate koristiti kada trebate izvrลกiti bilo koju operaciju vezanu uz enum tipove.
S druge strane, LINQ, dio imenskog prostora System.Linq, jedna je od najmoฤnijih znaฤajki C#. Omoguฤuje razliฤite metode za uฤinkovito rukovanje zbirkama, kao ลกto je dobivanje maksimalnih, minimalnih ili prosjeฤnih vrijednosti, sortiranje i filtriranje podataka.
opลกirnije