2

我需要通过从列表中获取的项目设置枚举值。

我有枚举:

[Flags]
public enum EnumTest
{
    Val1= 1, 

    Val2= 2, 

    Val3= 4
}

列出值:

var values = new List<EnumTest> {EnumTest.Val1, EnumTest.Val3};

如何使用 foreach 获得以下结果?

var result = EnumTest.Val1 | EnumTest.Val3;

谢谢

4

2 回答 2

4
EnumTest result = 0;

foreach (EnumTest et in values)
{
   result |= et;
}
于 2014-10-10T13:34:53.167 回答
4

这是使用 Linq 的解决方案:

var result = values.Aggregate((x, y) => x |= y);
于 2014-10-10T13:37:41.793 回答