【发布时间】:2013-03-08 16:06:23
【问题描述】:
鉴于enum:
[Flags]
public enum mytest
{
a = 1,
b = 2,
c = 4
}
我想出了两种方法来表示单个变量中的所有值:
var OR1 = (mytest)Enum.GetNames(typeof(mytest)).Sum(a => (int)Enum.Parse(typeof(mytest), a));
var OR2 = (mytest)(typeof(mytest).GetEnumValues() as mytest[]).Sum(a => (int)a);
现在,虽然它们都可以工作,但有没有更简洁的方法?可能是我缺少的 .NET 方法?
编辑:为澄清起见,我需要动态函数 - 我不想通过指定每个 enum 值来计算它。
【问题讨论】:
-
你也可以有一个
All枚举成员,它是 sum。 -
半严肃的建议:在某些情况下你可以这样做:
int all = ~0;