如何将foreach转换为linq查询或lambda表达式

本文关键字:查询 lambda 表达式 linq foreach 转换 | 更新日期: 2023-09-27 18:17:13

如何将此foreach转换为linq??MyReport。元素由5个元素组成。

foreach( var i in MyReport.Elements)
{
      if(i.caption == table.caption)
       { 
         newName = i.uname;
       }
}

我已经试着把它转换成linq,但它没有工作。

newName = MyReport.Elements.ForEach(i => i.caption.Equals(table.caption)? i.uname : null );

如何将foreach转换为linq查询或lambda表达式

只要有匹配,您的示例将继续分配。因此,在给定的上下文中,唯一重要的是最后一个精确匹配:

// C# 6
newName = MyReport.Elements.Where(x => x.caption == table.caption).LastOrDefault()?.uname;

Live/REPL示例:https://repl.it/ETVT/2