Mae cael y gwerth mwyaf o fath o gyfrifiad yn dasg gyffredin y mae datblygwyr yn dod ar ei thraws. Mae hyn yn ofynnol mewn senarios lle mae angen i chi ddilysu mewnbwn defnyddiwr neu drin adnoddau penodol yn seiliedig ar y gwerth enum. Mae C# yn darparu ffordd syml o gyflawni hyn gan ddefnyddio'r dosbarth Enum ac ychydig o LINQ.
Gadewch i ni archwilio'r ateb sy'n ei gwneud hi mor hawdd adalw uchafswm gwerth cyfrif â phastai.
cyhoeddus enum MyEnum
{
Opsiwn 1 = 1,
Opsiwn 2 = 2,
Opsiwn3 = 3
}
...
cyhoeddus yn GetMaxEnumValue()
{
dychwelyd Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Mae'r darn byr hwn o god yn gwneud yr holl waith o adalw'r gwerth uchaf yn yr enum. Ond sut mae'n gweithio?
Deifiwch yn Ddwfn i'r Cod
Yr `Enum.GetValues(typeof(MyEnum))` yw'r darn hollbwysig cyntaf i'w ddeall. Mae'r dull .NET adeiledig hwn yn dychwelyd Arae sy'n cynnwys gwerthoedd y cysonion mewn rhif penodol. Mae'r math rhif yn cael ei basio fel paramedr i'r dull gan ddefnyddio'r allweddair `typeof`.
Unwaith y bydd gennym yr arae, mae angen inni ei fwrw i gyfanrifau. Gwneir hyn gan ddefnyddio'r .Cast() dull sy'n rhan o LINQ (Ianguage Integrated Query). Mae LINQ yn set o dechnegau a dulliau yn .NET sy'n ein galluogi i weithio gyda data mewn ffordd fwy greddfol a hyblyg.
Ar ôl bwrw'r gwerthoedd i gyfanrifau, mae cael y gwerth mwyaf mor syml â galw'r dull .Max(), arf gwych arall a ddarperir gan LINQ. Mae'r dull hwn yn dychwelyd y gwerth mwyaf mewn casgliad o werthoedd int.
Trosoledd Llyfrgelloedd Enum a LINQ
Mae'r dosbarth Enum yn rhan o ofod enwau'r System yn .NET ac mae'n darparu sawl dull statig ar gyfer gweithio gyda chyfrifiadau. Dyma'r llyfrgell mynediad pan fydd angen i chi berfformio unrhyw weithrediad sy'n ymwneud â mathau o enum.
Ar y llaw arall, mae LINQ, rhan o ofod enwau System.Linq, yn un o nodweddion mwyaf pwerus C#. Mae'n darparu amrywiol ddulliau o drin casgliadau'n effeithiol, megis cael y gwerthoedd uchaf, isaf neu gyfartalog, didoli a hidlo data.
Darllenwch fwy