Gauti didžiausią vertę iš sąrašo tipo yra įprasta užduotis, su kuria susiduria kūrėjai. Tai būtina tais atvejais, kai reikia patvirtinti vartotojo įvestį arba tvarkyti tam tikrus išteklius pagal enum reikšmę. C# suteikia paprastą būdą tai pasiekti naudojant Enum klasę ir šiek tiek LINQ.
Išnagrinėkime sprendimą, kuris leidžia gauti didžiausią sąrašo reikšmę taip pat paprasta, kaip pyragas.
viešasis sąrašas MyEnum
{
1 variantas = 1,
2 variantas = 2,
3 variantas = 3
}
...
viešas int GetMaxEnumValue()
{
return Enum.GetValues(typeof(MyEnum)).Cast().Maks.();
}
Ši trumpa kodo dalis atlieka visą darbą, kad gautų didžiausią sąrašo reikšmę. Bet kaip tai veikia?
Giliai pasinerkite į kodą
„Enum.GetValues(typeof(MyEnum))“ yra pirmasis svarbus dalykas, kurį reikia suprasti. Šis integruotas .NET metodas grąžina masyvą, kuriame yra konstantų reikšmės nurodytame sąraše. Sąrašo tipas perduodamas kaip parametras metodui naudojant raktinį žodį „typeof“.
Kai turėsime masyvą, turime jį perkelti į sveikuosius skaičius. Tai atliekama naudojant .Cast() metodas, kuris yra LINQ (angl. Language Integrated Query) dalis. LINQ yra .NET metodų ir metodų rinkinys, leidžiantis dirbti su duomenimis intuityviau ir lanksčiau.
Suvedus reikšmes į sveikuosius skaičius, gauti maksimalią reikšmę yra taip paprasta, kaip iškviesti .Max() metodą – kitą puikų LINQ įrankį. Šis metodas grąžina didžiausią reikšmę int reikšmių rinkinyje.
Enum ir LINQ bibliotekų panaudojimas
„Enum“ klasė yra .NET sistemos vardų erdvės dalis ir suteikia kelis statinius darbo su išvardinimais metodus. Tai tiesioginė biblioteka, kai reikia atlikti bet kokią operaciją, susijusią su enum tipais.
Kita vertus, LINQ, System.Linq vardų erdvės dalis, yra viena iš galingiausių C# funkcijų. Jame pateikiami įvairūs metodai, kaip efektyviai tvarkyti rinkinius, pvz., gauti maksimalias, minimalias arba vidutines vertes, rūšiuoti ir filtruoti duomenis.
Skaityti daugiau