Akiri la maksimuman valoron de nombra tipo estas ofta tasko, kiun renkontas programistoj. Ĉi tio estas postulata en scenaroj, kie vi devas validigi uzantan enigon aŭ manipuli certajn rimedojn bazitajn sur la enumvaloro. C# provizas simplan manieron atingi tion uzante la Enum-klason kaj iom da LINQ.
Ni esploru la solvon, kiu faciligas retrovi la maksimuman valoron de nombrado.
publika enum MyEnum
{
Opcio1 = 1,
Opcio2 = 2,
Opcio 3 = 3
}
...
publika int GetMaxEnumValue()
{
return Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Ĉi tiu mallonga kodo faras la tutan laboron por retrovi la plej altan valoron en la enum. Sed kiel ĝi funkcias?
Profunde Plonĝo En La Kodon
La `Enum.GetValues(typeof(MyEnum))` estas la unua kritika peco komprenebla. Ĉi tiu enkonstruita .NET-metodo resendas Tabelon enhavantan la valorojn de la konstantoj en specifita listigo. La nombra tipo estas transdonita kiel parametro al la metodo uzante la ŝlosilvorton `typeof`.
Post kiam ni havas la tabelon, ni devas ĵeti ĝin al entjeroj. Ĉi tio estas farita uzante la .Cast() metodo kiu estas parto de LINQ (Lingva Integra Demando). LINQ estas aro de teknikoj kaj metodoj en .NET, kiu ebligas al ni labori kun datumoj en pli intuicia kaj fleksebla maniero.
Post ĵetado de la valoroj al entjeroj, ricevi la maksimuman valoron estas tiel simple kiel voki la .Max()-metodon, alia bonega ilo provizita de LINQ. Ĉi tiu metodo liveras la maksimuman valoron en kolekto de int-valoroj.
Utiligante Enum kaj LINQ-Bibliotekojn
La Enum-klaso estas parto de la System-nomspaco en .NET kaj disponigas plurajn senmovajn metodojn por labori kun listigo. Ĝi estas la iranta biblioteko kiam vi bezonas fari ajnan operacion rilatan al enumtipoj.
Aliflanke, LINQ, parto de la nomspaco System.Linq, estas unu el la plej potencaj trajtoj de C#. Ĝi disponigas diversajn metodojn por trakti kolektojn efike, kiel ekzemple akiri la maksimumajn, minimumajn aŭ averaĝajn valorojn, ordigi kaj filtrar datumojn.
Legu pli