【问题标题】:Multi-line foreach loop in linq / lambdalinq / lambda 中的多行 foreach 循环
【发布时间】:2011-04-26 11:44:57
【问题描述】:

我正在寻找一种方法来更改以下代码:

foreach (Contact _contact in contacts)
{
    _contact.ID = 0;
    _contact.GroupID = 0;
    _contact.CompanyID = 0;
}

我想使用 LINQ / lambda 将其更改为类似于:

contacts.ForEach(c => c.ID = 0; c.GroupID = 0; c.CompanyID = 0);

但是这不起作用。除了通过编写一个函数在一行中执行此操作之外,还有什么方法可以在 linq foreach 中执行多行操作?

【问题讨论】:

    标签: linq lambda foreach


    【解决方案1】:
    contacts.ForEach(c => { c.ID = 0; c.GroupID = 0; c.CompanyID = 0; });
    

    它与 LINQ 本身没有任何关系;它只是一个用 lambda 语法编写的简单匿名方法,传递给 List<T>.ForEach 函数(自 2.0 以来,在 LINQ 之前就存在)。

    【讨论】:

    • 我正在寻找一种在 LINQ Select 中执行多行语句的方法。 ForEach 语法允许我这样做。谢谢!
    【解决方案2】:

    LINQ 代表 Language Integrated Query - 这意味着它用于查询 - 即将序列提取或转换为新集合,而不是操纵原始集合。 p>

    ForEach method hangs off List<T> 是一个方便的 foreach 快捷方式;没什么特别的。

    【讨论】:

    • 谢谢,这很有帮助。看起来有点类似于 ES6 中的 map 函数。
    猜你喜欢
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    相关资源
    最近更新 更多