ะััะธะผะฐะฝะฝั ะผะฐะบัะธะผะฐะปัะฝะพะณะพ ะทะฝะฐัะตะฝะฝั ะฒัะด ัะธะฟั ะฟะตัะตัะฐั
ัะฒะฐะฝะฝั ั ะฟะพัะธัะตะฝะธะผ ะทะฐะฒะดะฐะฝะฝัะผ, ะท ัะบะธะผ ััะธะบะฐััััั ัะพะทัะพะฑะฝะธะบะธ. ะฆะต ะฟะพัััะฑะฝะพ ะฒ ััะตะฝะฐัััั
, ะบะพะปะธ ะฒะฐะผ ะฟะพัััะฑะฝะพ ะฟะตัะตะฒััะธัะธ ะฒะฒะตะดะตะฝั ะบะพัะธัััะฒะฐัะตะผ ะดะฐะฝั ะฐะฑะพ ะพะฑัะพะฑะธัะธ ะฟะตะฒะฝั ัะตััััะธ ะฝะฐ ะพัะฝะพะฒั ะทะฝะฐัะตะฝะฝั enum. C# ะทะฐะฑะตะทะฟะตััั ะฟัะพััะธะน ัะฟะพััะฑ ะดะพััะณัะธ ััะพะณะพ ะทะฐ ะดะพะฟะพะผะพะณะพั ะบะปะฐัั Enum ั ััะพั
ะธ LINQ.
ะะฐะฒะฐะนัะต ัะพะทะณะปัะฝะตะผะพ ัััะตะฝะฝั, ัะบะต ัะพะฑะธัั ะพััะธะผะฐะฝะฝั ะผะฐะบัะธะผะฐะปัะฝะพะณะพ ะทะฝะฐัะตะฝะฝั ะฟะตัะตะปัะบั ะฟัะพััะธะผ, ัะบ ะฟะธััะณ.
ะฒัะดะบัะธัะธะน ะฟะตัะตะปัะบ 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 ั .NET ั ะฝะฐะดะฐั ะบัะปัะบะฐ ััะฐัะธัะฝะธั
ะผะตัะพะดัะฒ ะดะปั ัะพะฑะพัะธ ะท ะฟะตัะตัะฐั
ัะฒะฐะฝะฝัะผะธ. ะฆะต ะฑัะฑะปัะพัะตะบะฐ, ะดะพ ัะบะพั ะผะพะถะฝะฐ ะทะฒะตัะฝััะธัั, ะบะพะปะธ ะฒะฐะผ ะฟะพัััะฑะฝะพ ะฒะธะบะพะฝะฐัะธ ะฑัะดั-ัะบั ะพะฟะตัะฐััั, ะฟะพะฒโัะทะฐะฝั ะท ัะธะฟะฐะผะธ ะฟะตัะตะปัะบั.
ะ ัะฝัะพะณะพ ะฑะพะบั, LINQ, ัะฐััะธะฝะฐ ะฟัะพััะพัั ัะผะตะฝ System.Linq, ั ะพะดะฝััั ะท ะฝะฐะนะฟะพััะถะฝััะธั
ััะฝะบััะน C#. ะัะฝ ะฝะฐะดะฐั ััะทะฝั ะผะตัะพะดะธ ะตัะตะบัะธะฒะฝะพั ะพะฑัะพะฑะบะธ ะบะพะปะตะบััะน, ะฝะฐะฟัะธะบะปะฐะด ะพััะธะผะฐะฝะฝั ะผะฐะบัะธะผะฐะปัะฝะธั
, ะผัะฝัะผะฐะปัะฝะธั
ะฐะฑะพ ัะตัะตะดะฝัั
ะทะฝะฐัะตะฝั, ัะพัััะฒะฐะฝะฝั ัะฐ ััะปััััะฒะฐะฝะฝั ะดะฐะฝะธั
.
ะะตัะฐะปัะฝััะต