繁体   English   中英

将值从列表C#设置为[Flags]枚举

[英]Set value to [Flags] Enum from list c#

我需要通过列表中的项目设置Enum值。

我有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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM