gpt4 book ai didi

c# - 如何将 foreach 循环转换为 Linq 查询?

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

结构如下

[[1,10],[2,20],[5,45],[10,34]]

这个 foreach 循环找到匹配“planYear”的第一个元素。如果 planYear=5 则将选择第三个元素值“45”。

List<object> gifts = gifts;
foreach (List<object> item in gifts)
{
if (item[0] == planYear)
{
gift = Convert.ToDouble(item[1]);
break;
}
}

实现相同结果的类似 Linq 语句是什么?

最佳答案

var gift = gifts.Cast<List<object>>()
.Where(x => x[0] == planYear)
.Select(x => Convert.ToDouble(x[1]))
.FirstOrDefault();

如果没有找到匹配条目gift将是 0 .如果这不是您想要的,请使用 First()反而。如果不存在匹配项,这将引发异常。

这个答案假设 - 就像你的 foreach循环 - 里面的每一项 gifts实际上是一个 List<object> .即使一个项目是不同类型的,这段代码也会抛出 InvalidCastException。 .如果这是一个问题,请使用 OfType而不是 Cast .

关于c# - 如何将 foreach 循环转换为 Linq 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723590/

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