如何获得第一个枚举值,而不管符号
本文关键字:不管 符号 何获得 第一个 枚举 | 更新日期: 2023-09-27 17:53:34
如何获得第一个enum成员仅使用其类型,而不管底层值是正的还是负的?
让我们假设我有一个这样的enum:
public enum GamePeriod
{
Unknown = -100,
PreGame = 0,
Q1 = 1,
Q2 = 2,
Q3 = 3,
Q4 = 4,
OT = 5,
Completed = 6,
}
我怎么能确保总是得到未知?不管它的值是-1,-10,-100,100,666还是别的什么?
我想你需要这样的东西:
var min = ((GamePeriod[])Enum.GetValues(typeof(GamePeriod))).Min();
似乎已经回答过了:
如果GetFields()不能保证顺序,那么LayoutKind()如何保证顺序?连续工作
Type myType = ...
BindingFlags flags = ...
IEnumerable<FieldInfo> orderedFields = myType.GetFields(flags)
.OrderBy(field => field.MetadataToken);
但是,最好使用其他方式来表示特殊值。
通常为空。
GamePeriod? p = ...
if (p == null)
{
// special case
}
else
{
UseAsNormal(p.Value);
}