ืงืืืช ืืขืจื ืืืงืกืืืื ืืกืื ืกืคืืจื ืืื ืืฉืืื ื ืคืืฆื ืื ื ืชืงืืื ืืคืชืืื. ืื ื ืืจืฉ ืืชืจืืืฉืื ืฉืืื ืืชื ืฆืจืื ืืืืช ืงืื ืืฉืชืืฉ ืื ืืืคื ืืืฉืืืื ืืกืืืืื ืขื ืกืื ืขืจื ื-enum. C# ืืกืคืง ืืจื ืคืฉืืื ืืืฉืื ืืืช ืืืืฆืขืืช ืืืืงืช Enum ืืืขื LINQ.
ืืื ื ืืงืืจ ืืช ืืคืชืจืื ืฉืืืคื ืืช ืฉืืืคืช ืืขืจื ืืืงืกืืืื ืฉื ืกืคืืจื ืืงืื ืืื ืคืฉืืืื.
Enum ืฆืืืืจื MyEnum
{
ืืคืฉืจืืช 1 = 1,
ืืคืฉืจืืช 2 = 2,
ืืคืฉืจืืช 3 = 3
}
...
public int GetMaxEnumValue()
{
ืืืืจ ืืช Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
ืงืืข ืงืื ืงืฆืจ ืื ืขืืฉื ืืช ืื ืืขืืืื ืฉื ืฉืืืคืช ืืขืจื ืืืืื ืืืืชืจ ื-enum. ืืื ืืื ืื ืขืืื?
ืฆืืืื ืขืืืงื ืืชืื ืืงืื
ื-'Enum.GetValues(typeof(MyEnum))' ืืื ืืงืืข ืืงืจืืื ืืจืืฉืื ืฉืฆืจืื ืืืืื. ืฉืืืช NET ืืืื ืืช ืื ืืืืืจื Array ืืืืื ืืช ืขืจืื ืืงืืืขืื ืืกืคืืจื ืฉืฆืืื ื. ืกืื ืืกืคืืจื ืืืขืืจ ืืคืจืืืจ ืืฉืืื ืืืืฆืขืืช ืืืืช ืืืคืชื `typeof`.
ืืจืืข ืฉืืฉ ืื ื ืืช ืืืขืจื, ืขืืื ื ืืืืื ืืืชื ืืืกืคืจืื ืฉืืืื. ืื ื ืขืฉื ืืืืฆืขืืช .Castืฉืืื () ืฉืืื ืืืง ื-LINQ (ืฉืืืืชื ืืฉืืืืช ืืฉืคื). LINQ ืืื ืกื ืฉื ืืื ืืงืืช ืืฉืืืืช ื-.NET ืืืืคืฉืจ ืื ื ืืขืืื ืขื ื ืชืื ืื ืืฆืืจื ืืื ืืืืืืืืืช ืืืืืฉื ืืืชืจ.
ืืืืจ ืืฆืืงืช ืืขืจืืื ืืืกืคืจืื ืฉืืืื, ืงืืืช ืืขืจื ืืืงืกืืืื ืืื ืคืฉืืื ืืื ืงืจืืื ืืืชืืื .Max(), ืืื ื ืืืจ ื ืืกืฃ ืฉืกืืคืง ืขื ืืื LINQ. ืฉืืื ืื ืืืืืจื ืืช ืืขืจื ืืืงืกืืืื ืืืืกืฃ ืฉื ืขืจืื int.
ืืื ืืฃ ืกืคืจืืืช Enum ื-LINQ
ืืืืงืช Enum ืืื ืืืง ืืืจืื ืืฉืืืช ืฉื ืืืขืจืืช ื-.NET ืืืกืคืงืช ืืกืคืจ ืฉืืืืช ืกืืืืืช ืืขืืืื ืขื ืกืคืืจืืช. ืืืื ืืกืคืจืืื ืฉืื ืืชื ืฆืจืื ืืืฆืข ืื ืคืขืืื ืืงืฉืืจื ืืกืืื enum.
ืืฆื ืฉื ื, LINQ, ืืืง ืืืจืื ืืฉืืืช System.Linq, ืืื ืืื ืืชืืื ืืช ืืืืงืืช ืืืืชืจ ืฉื C#. ืืื ืืกืคืง ืฉืืืืช ืฉืื ืืช ืืืคื ืืืืกืคืื ืืฆืืจื ืืขืืื, ืืืื ืงืืืช ืืขืจืืื ืืืงืกืืืืืื, ืืืื ืืืืืื ืื ืืืืืฆืขืื, ืืืื ืืกืื ืื ื ืชืื ืื.
ืืืืืข ื ืืกืฃ