Loenditüübist maksimaalse väärtuse saamine on tavaline ülesanne, millega arendajad kokku puutuvad. See on vajalik stsenaariumide puhul, kus peate kontrollima kasutaja sisendit või käsitlema teatud ressursse loendi väärtuse alusel. C# pakub lihtsat viisi selle saavutamiseks, kasutades klassi Enum ja natuke LINQ-d.
Uurime lahendust, mis muudab loendi maksimaalse väärtuse leidmise sama lihtsaks kui pirukas.
avalik loend MyEnum
{
Valik 1 = 1,
Valik 2 = 2,
Valik 3 = 3
}
...
public int GetMaxEnumValue()
{
return Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
See lühike kooditükk teeb kogu töö loendi suurima väärtuse hankimiseks. Aga kuidas see toimib?
Sukelduge koodi sügavale
"Enum.GetValues(typeof(MyEnum))" on esimene oluline osa, mida mõista. See sisseehitatud .NET-meetod tagastab massiivi, mis sisaldab kindlaksmääratud loendis olevate konstantide väärtusi. Loendi tüüp edastatakse parameetrina meetodile, kasutades märksõna „typeof”.
Kui massiiv on käes, peame selle täisarvudeks üle kandma. Seda tehakse .Casti abil() meetod, mis on LINQ (Language Integrated Query) osa. LINQ on .NET-i tehnikate ja meetodite kogum, mis võimaldab meil töötada andmetega intuitiivsemal ja paindlikumal viisil.
Pärast väärtuste täisarvudesse kandmist on maksimaalse väärtuse saamine sama lihtne kui .Max() meetodi kutsumine, mis on veel üks suurepärane LINQ-i tööriist. See meetod tagastab maksimaalse väärtuse int väärtuste kogus.
Enumi ja LINQ raamatukogude võimendamine
Klass Enum on osa .NET-i nimeruumist System ja pakub loenditega töötamiseks mitmeid staatilisi meetodeid. See on teeki, kus peate tegema mis tahes enum-tüüpidega seotud toiminguid.
Teisest küljest on System.Linqi nimeruumi osa LINQ üks C# võimsamaid funktsioone. See pakub erinevaid meetodeid kogude tõhusaks haldamiseks, nagu maksimaalsete, minimaalsete või keskmiste väärtuste hankimine, andmete sortimine ja filtreerimine.
Loe rohkem