使用LINQ选择枚举中的所有标记值

溴2

我有一组标记的枚举,如下所示:

[Flags]
enum EnumThing
{
    A = 1,
    B = 2,
    C = 4,
    D = 8
}

我想使用LINQ选择集合中的所有标志。假设集合是这样的:

EnumThing ab = EnumThing.A | EnumThing.B;
EnumThing ad = EnumTHing.A | EnumThing.D;    
var enumList = new List<EnumThing> { ab, ad };

按位显示如下:

0011
1001

预期的结果是这样的:

1011

可以通过以下代码在普通C#中实现所需的结果:

EnumThing wishedOutcome = ab | ad;

或在SQL中

select 3 | 9

但是,如何在enumList使用Linq的过程中选择所有选中的标志EnumThing

雅库布·鲁西尔科(Jakub Rusilko)

一个简单的linq解决方案是这样的:

EnumThing ab = EnumThing.A | EnumThing.B;
EnumThing ad = EnumThing.A | EnumThing.D;
var enumList = new List<EnumThing> { ab, ad };

var combined = enumList.Aggregate((result, flag) => result | flag);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Spring和Thymeleaf在下拉列表中显示所有可能的枚举值?

如何获取Java中的所有枚举值?

如何在Java中获取枚举的所有可能值?(不知道具体的枚举)

如何在java中打印所有枚举值?

用Java中的所有枚举值填充列表

如何遍历C#中的所有枚举值?

在Scala中获取所有枚举用例对象的值

表示Flag枚举中的所有值

如何使用LINQ在C#中返回所有属性或选择的所有属性?

使用LINQ动态选择所有XML元素及其值

如何使用打字稿获取枚举的所有值?

如何使用linq从嵌套字典中选择所有值?

C#Linq查询选择所有以String开头的枚举

替换列表中的所有值而不使用枚举?

使用LINQ从集合中选择所有字段以及其他集合中的相关项

如何使用JavaScript选择section标记内的所有div?

将所有值沿多重选择用于相同的y值标记点

枚举C中的所有枚举名称/值

使用jQuery选择除标记组中的所有子项以外的所有子项

WPF C#-将枚举绑定到ComboBox,但不使用所有枚举值

unserialize()使用PHP的多选择标记中的多个选择值

如何使用Watir WebDriver选择在div标记中定义的组合列表文本项,其中所有div标记均具有相同的类名

使用TryParse将字符串值与C#中的枚举中的所有值进行比较-逻辑问题

枚举和替换python中字符串文件中的所有标记

我应该测试合同中的所有枚举值吗?

如何使用Javascript选择html选择元素中的所有值

使用 Linq 仅查找在标志列表中具有所有匹配值的记录?

在 Swift 中传递所有枚举值

在 Swift 中传递所有枚举值