gpt4 book ai didi

c# - 根据2个条件选择使用linq

转载 作者:行者123 更新时间:2023-11-30 13:59:58 25 4
gpt4 key购买 nike

我有一个收藏。我想选择符合 2 个条件的值。

var a;
var b;
foreach(SomeObject so in collection)
{
if(so.Value == something)
{
a = so;
// break if b is not null.
}
else if(so.Value == somethingElse)
{
b = so;
// break if a is not null
}
}

是否可以使用 linq 仅迭代一次集合来完成上述操作?如果我们可以利用这一事实,那么 something 和 somethingElse 将只有一个值。

最佳答案

此解决方案将列表缩小到两个元素,然后从那里开始。 Take(2) 用于仅在找到两个值之前搜索集合。

var matches = collection.Where(x => x.Value == something || x.Value == somethingElse)
.Take(2)
.ToList();
var a = matches.Single(x => x.Value == something);
var b = matches.Single(x => x.Value == somethingElse);

关于c# - 根据2个条件选择使用linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com