首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linq检查列表中是否存在所有值

Linq检查列表中是否存在所有值
EN

Stack Overflow用户
提问于 2017-06-22 11:50:24
回答 2查看 2.8K关注 0票数 1

我有一个名为OfferPriorities的对象列表,OfferPriority有一个字段TypeId。我希望确保所有TypeId值都存在于OfferPriorities中。可能的TypeId值是1,2和3,我想检查它们是否都存在于OfferPriorities中。例如,下面的TypeId 3在列表中不存在,所以我应该抛出一个异常。

Id = TypeId

5-1

6-2

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-22 11:51:38

Except + Any做您想做的事:

代码语言:javascript
运行
复制
bool allExist = !new[] { 1, 2, 3 }.Except(OfferPrioritie.Select(x => x.TypeId)).Any();
票数 3
EN

Stack Overflow用户

发布于 2017-06-22 12:22:45

另一种可能是使用All检查OfferPriorities是否包含所有元素:

代码语言:javascript
运行
复制
List<OfferPriority> OfferPriorities = new List<OfferPriority>();

OfferPriorities.Add(new OfferPriority() { TypeId = 1 });
OfferPriorities.Add(new OfferPriority() { TypeId = 2 });
//OfferPriorities.Add(new OfferPriority() { TypeId = 3 });

List<int> allowedIDs = new List<int> { 1, 2, 3 };

bool check = allowedIDs.All(x => OfferPriorities.Select(y => y.TypeId).Contains(x));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44698602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档