A maximális érték lekérése egy felsorolástípusból gyakori feladat, amellyel a fejlesztők találkoznak. Erre olyan forgatókönyvekben van szükség, amikor a felhasználói bevitelt érvényesíteni kell, vagy bizonyos erőforrásokat kell kezelni az enum értéke alapján. A C# egyszerű módszert kínál ennek elérésére az Enum osztály és egy kis LINQ használatával.
Vizsgáljuk meg azt a megoldást, amely a felsorolás maximális értékének lekérését olyan egyszerűvé teszi, mint a torta.
nyilvános enum MyEnum
{
1. lehetőség = 1,
2. lehetőség = 2,
3. lehetőség = 3
}
...
public int GetMaxEnumValue()
{
return Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Ez a rövid kódrészlet mindent megtesz annak érdekében, hogy lekérje az enum legmagasabb értékét. De hogyan működik?
Merülj el mélyen a kódba
Az "Enum.GetValues(typeof(MyEnum))" az első fontos elem, amelyet megérteni kell. Ez a beépített .NET metódus egy tömböt ad vissza, amely egy megadott felsorolásban tartalmazza az állandók értékeit. A felsorolás típusát a rendszer paraméterként adja át a metódusnak a "typeof" kulcsszó használatával.
Ha megvan a tömb, akkor egész számokká kell önteni. Ez a .Cast segítségével történik() metódus, amely a LINQ (Language Integrated Query) része. A LINQ olyan technikák és módszerek halmaza a .NET-ben, amelyek segítségével intuitívabb és rugalmasabb módon dolgozhatunk az adatokkal.
Az értékek egész számokká történő öntése után a maximális érték elérése olyan egyszerű, mint a .Max() metódus meghívása, amely egy másik nagyszerű eszköz, amelyet a LINQ biztosít. Ez a módszer a maximális értéket adja vissza az int értékek gyűjteményében.
Az Enum és LINQ könyvtárak kihasználása
Az Enum osztály a .NET System névterének része, és számos statikus módszert biztosít a felsorolásokkal való munkához. Ez a könyvtár, amikor az enum típusokkal kapcsolatos műveleteket kell végrehajtania.
Másrészt a LINQ, a System.Linq névtér része, a C# egyik leghatékonyabb funkciója. Különféle módszereket biztosít a gyűjtemények hatékony kezelésére, mint például a maximális, minimum vagy átlagértékek lekérése, az adatok rendezése és szűrése.
KATT ide