如何将此foreach转换为linq ??? MyReport.Elements由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 );
答案 0 :(得分:1)
只要有匹配项,您的示例将继续分配。因此,在您给出的上下文中唯一真正重要的是 last 完全匹配:
// C# 6
newName = MyReport.Elements.Where(x => x.caption == table.caption).LastOrDefault()?.uname;
Live / REPL示例就在这里:https://repl.it/ETVT/2