Maksimālās vērtības iegūšana no uzskaitījuma veida ir izplatīts uzdevums, ar ko saskaras izstrādātāji. Tas ir nepieciešams gadījumos, kad ir jāpārbauda lietotāja ievade vai jāapstrādā noteikti resursi, pamatojoties uz enum vērtību. C# nodrošina vienkāršu veidu, kā to panākt, izmantojot Enum klasi un nedaudz LINQ.
Izpētīsim risinājumu, kas padara uzskaitījuma maksimālās vērtības izgūšanu tikpat vienkāršu kā pīrāgs.
publiskais saraksts MyEnum
{
1. iespēja = 1,
2. iespēja = 2,
3. iespēja = 3
}
...
publiska int GetMaxEnumValue()
{
atgriezties Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Šis īsais koda fragments veic visu darbu, lai izgūtu enum augstāko vērtību. Bet kā tas darbojas?
Dziļi iedziļināties kodā
"Enum.GetValues(typeof(MyEnum))" ir pirmais svarīgais elements, kas jāsaprot. Šī iebūvētā .NET metode atgriež masīvu, kurā ir norādītā uzskaitījuma konstantu vērtības. Uzskaitījuma veids tiek nodots kā parametrs metodei, izmantojot atslēgvārdu "typeof".
Kad esam ieguvuši masīvu, mums tas ir jāizdala veselos skaitļos. Tas tiek darīts, izmantojot .Cast() metode, kas ir daļa no LINQ (Language Integrated Query). LINQ ir .NET paņēmienu un metožu kopums, kas ļauj mums strādāt ar datiem intuitīvāk un elastīgāk.
Pēc vērtību nosūtīšanas uz veseliem skaitļiem maksimālās vērtības iegūšana ir tikpat vienkārša kā metodes .Max() izsaukšana, kas ir vēl viens lielisks LINQ rīks. Šī metode atgriež maksimālo vērtību int vērtību kolekcijā.
Enum un LINQ bibliotēku izmantošana
Klase Enum ir daļa no sistēmas nosaukumvietas .NET un nodrošina vairākas statiskas metodes darbam ar uzskaitēm. Tā ir galvenā bibliotēka, kad jāveic jebkādas darbības, kas saistītas ar enum veidiem.
No otras puses, LINQ, kas ir daļa no System.Linq nosaukumvietas, ir viena no jaudīgākajām C# funkcijām. Tas nodrošina dažādas metodes, lai efektīvi apstrādātu kolekcijas, piemēram, maksimālo, minimālo vai vidējo vērtību iegūšana, datu kārtošana un filtrēšana.
Lasīt vairāk