linq / lambda 中的多行 foreach 循环

发布于 2024-09-27 23:39:02 字数 374 浏览 3 评论 0原文

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

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 中执行多行操作吗?

I am looking for a way to change the following code:

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

I would like to change this using LINQ / lambda into something similar to:

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

However that doesn't work. Is there any way to do multi-line in a linq foreach other than by writing a function to do this in one line?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷了相思 2024-10-04 23:39:02
contacts.ForEach(c => { c.ID = 0; c.GroupID = 0; c.CompanyID = 0; });

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

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

It doesn't have anything to do with LINQ per se; it's just a simple anonymous method written in lambda syntax passed to the List<T>.ForEach function (which existed since 2.0, before LINQ).

晨曦慕雪 2024-10-04 23:39:02

LINQ 代表语言集成查询 - 这意味着它用于查询 - 即提取序列或将序列转换为新集合,而不是操作原始序列。

ForEach 方法挂起 List是 foreach 的便捷快捷方式;没什么特别的。

LINQ stands for Language Integrated Query - which means it is intended for querying - i.e. extracting or transforming a sequence into a new set, not manipulating the original.

The ForEach method hangs off List<T> and is a convenience shortcut to foreach; nothing special.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文