ะะพะปััะฐะฒะฐะฝะตัะพ ะฝะฐ ะผะฐะบัะธะผะฐะปะฝะฐ ััะพะนะฝะพัั ะพั ัะธะฟ ะธะทะฑัะพัะฒะฐะฝะต ะต ัะตััะพ ััะตัะฐะฝะฐ ะทะฐะดะฐัะฐ, ั ะบะพััะพ ัะต ัะฑะปััะบะฒะฐั ัะฐะทัะฐะฑะพััะธัะธัะต. ะขะพะฒะฐ ัะต ะธะทะธัะบะฒะฐ ะฒ ััะตะฝะฐัะธะธ, ะฟัะธ ะบะพะธัะพ ัััะฑะฒะฐ ะดะฐ ะฟะพัะฒััะดะธัะต ะฒัะฒะตะดะตะฝะพัะพ ะพั ะฟะพััะตะฑะธัะตะปั ะธะปะธ ะดะฐ ัะฟัะฐะฒะปัะฒะฐัะต ะพะฟัะตะดะตะปะตะฝะธ ัะตััััะธ ะฒัะท ะพัะฝะพะฒะฐ ะฝะฐ ััะพะนะฝะพัััะฐ enum. C# ะฟัะตะดะพััะฐะฒั ะปะตัะตะฝ ะฝะฐัะธะฝ ะทะฐ ะฟะพััะธะณะฐะฝะต ะฝะฐ ัะพะฒะฐ ั ะฟะพะผะพััะฐ ะฝะฐ ะบะปะฐัะฐ Enum ะธ ะผะฐะปะบะพ LINQ.
ะะตะบะฐ ะฟัะพััะธะผ ัะตัะตะฝะธะตัะพ, ะบะพะตัะพ ะฟัะฐะฒะธ ะธะทะฒะปะธัะฐะฝะตัะพ ะฝะฐ ะผะฐะบัะธะผะฐะปะฝะฐัะฐ ััะพะนะฝะพัั ะฝะฐ ะธะทะฑัะพัะฒะฐะฝะต ะปะตัะฝะพ ะบะฐัะพ ะฟะฐะน.
ะฟัะฑะปะธัะตะฝ enum MyEnum
{
ะะฟัะธั1 = 1,
ะะฟัะธั2 = 2,
ะะฐัะธะฐะฝั 3 = 3
}
...
public int GetMaxEnumValue()
{
ะฒััะฝะต Enum.GetValues(typeof(MyEnum)).Cast().ะะฐะบั();
}
ะขะฐะทะธ ะบัะฐัะบะฐ ัะฐัั ะพั ะบะพะดะฐ ะฒัััะธ ััะปะฐัะฐ ัะฐะฑะพัะฐ ะฟะพ ะธะทะฒะปะธัะฐะฝะต ะฝะฐ ะฝะฐะน-ะฒะธัะพะบะฐัะฐ ััะพะนะฝะพัั ะฒ enum. ะะพ ะบะฐะบ ัะฐะฑะพัะธ?
ะะผััะฝะตัะต ัะต ะดัะปะฑะพะบะพ ะฒ ะบะพะดะฐ
`Enum.GetValues(typeof(MyEnum))` ะต ะฟััะฒะฐัะฐ ะฒะฐะถะฝะฐ ัะฐัั, ะบะพััะพ ัััะฑะฒะฐ ะดะฐ ัะฐะทะฑะตัะตัะต. ะขะพะทะธ ะฒะณัะฐะดะตะฝ .NET ะผะตัะพะด ะฒัััะฐ ะผะฐัะธะฒ, ััะดััะถะฐั ััะพะนะฝะพััะธัะต ะฝะฐ ะบะพะฝััะฐะฝัะธัะต ะฒ ะพะฟัะตะดะตะปะตะฝะพ ะธะทะฑัะพัะฒะฐะฝะต. ะขะธะฟัั ะธะทะฑัะพัะฒะฐะฝะต ัะต ะฟัะตะดะฐะฒะฐ ะบะฐัะพ ะฟะฐัะฐะผะตััั ะฝะฐ ะผะตัะพะดะฐ ั ะฟะพะผะพััะฐ ะฝะฐ ะบะปััะพะฒะฐัะฐ ะดัะผะฐ `typeof`.
ะกะปะตะด ะบะฐัะพ ะธะผะฐะผะต ะผะฐัะธะฒะฐ, ัััะฑะฒะฐ ะดะฐ ะณะพ ะฟัะตะพะฑัะฐะทัะฒะฐะผะต ะฒ ัะตะปะธ ัะธัะปะฐ. ะขะพะฒะฐ ัะต ะฟัะฐะฒะธ ั ะฟะพะผะพััะฐ ะฝะฐ .Cast(), ะบะพะนัะพ ะต ัะฐัั ะพั LINQ (Language Integrated Query). LINQ ะต ะฝะฐะฑะพั ะพั ัะตั
ะฝะธะบะธ ะธ ะผะตัะพะดะธ ะฒ .NET, ะบะพะนัะพ ะฝะธ ะฟะพะทะฒะพะปัะฒะฐ ะดะฐ ัะฐะฑะพัะธะผ ั ะดะฐะฝะฝะธ ะฟะพ ะฟะพ-ะธะฝััะธัะธะฒะตะฝ ะธ ะณัะฒะบะฐะฒ ะฝะฐัะธะฝ.
ะกะปะตะด ะฟัะตะพะฑัะฐะทัะฒะฐะฝะต ะฝะฐ ััะพะนะฝะพััะธัะต ะฒ ัะตะปะธ ัะธัะปะฐ, ะฟะพะปััะฐะฒะฐะฝะตัะพ ะฝะฐ ะผะฐะบัะธะผะฐะปะฝะฐัะฐ ััะพะนะฝะพัั ะต ัะพะปะบะพะฒะฐ ะฟัะพััะพ, ะบะพะปะบะพัะพ ะธะทะฒะธะบะฒะฐะฝะตัะพ ะฝะฐ ะผะตัะพะดะฐ .Max(), ะดััะณ ััะดะตัะตะฝ ะธะฝััััะผะตะฝั, ะฟัะตะดะพััะฐะฒะตะฝ ะพั LINQ. ะขะพะทะธ ะผะตัะพะด ะฒัััะฐ ะผะฐะบัะธะผะฐะปะฝะฐัะฐ ััะพะนะฝะพัั ะฒ ะบะพะปะตะบัะธั ะพั int ััะพะนะฝะพััะธ.
ะะทะฟะพะปะทะฒะฐะฝะต ะฝะฐ Enum ะธ LINQ ะฑะธะฑะปะธะพัะตะบะธ
ะะปะฐััั Enum ะต ัะฐัั ะพั System namespace ะฒ .NET ะธ ะฟัะตะดะพััะฐะฒั ะฝัะบะพะปะบะพ ััะฐัะธัะฝะธ ะผะตัะพะดะฐ ะทะฐ ัะฐะฑะพัะฐ ั ะธะทะฑัะพัะฒะฐะฝะธั. ะขะพะฒะฐ ะต ะฑะธะฑะปะธะพัะตะบะฐัะฐ, ะบะพััะพ ัััะฑะฒะฐ ะดะฐ ะธะทะฟะพะปะทะฒะฐัะต, ะบะพะณะฐัะพ ัััะฑะฒะฐ ะดะฐ ะธะทะฒัััะธัะต ะพะฟะตัะฐัะธั, ัะฒััะทะฐะฝะฐ ั ัะธะฟะพะฒะตัะต enum.
ะั ะดััะณะฐ ัััะฐะฝะฐ, LINQ, ัะฐัั ะพั ะฟัะพัััะฐะฝััะฒะพัะพ ะฝะฐ ะธะผะตะฝะฐัะฐ System.Linq, ะต ะตะดะฝะฐ ะพั ะฝะฐะน-ะผะพัะฝะธัะต ััะฝะบัะธะธ ะฝะฐ C#. ะขะพะน ะฟัะตะดะพััะฐะฒั ัะฐะทะปะธัะฝะธ ะผะตัะพะดะธ ะทะฐ ะตัะตะบัะธะฒะฝะพ ะพะฑัะฐะฑะพัะฒะฐะฝะต ะฝะฐ ะบะพะปะตะบัะธะธ, ะบะฐัะพ ะฟะพะปััะฐะฒะฐะฝะต ะฝะฐ ะผะฐะบัะธะผะฐะปะฝะธ, ะผะธะฝะธะผะฐะปะฝะธ ะธะปะธ ััะตะดะฝะธ ััะพะนะฝะพััะธ, ัะพััะธัะฐะฝะต ะธ ัะธะปััะธัะฐะฝะต ะฝะฐ ะดะฐะฝะฝะธ.
ะะธะถัะต ะฟะพะฒะตัะต