将值设置为列表c#中的[Flags]枚举
本文关键字:Flags 枚举 中的 设置 列表 | 更新日期: 2023-09-27 18:26:07
我需要通过从列表中获取的项来设置Enum值。
我有枚举:
[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;
感谢
下面是一个使用Linq:的解决方案
var result = values.Aggregate((x, y) => x |= y);
EnumTest result = 0;
foreach (EnumTest et in values)
{
result |= et;
}