如何获取 linq `ForEach` 语句以返回有关为每个列表对象进行的方法调用的数据?

Posted

技术标签:

【中文标题】如何获取 linq `ForEach` 语句以返回有关为每个列表对象进行的方法调用的数据?【英文标题】:How to get linq `ForEach` statement to return data on the method call being made for each list object? 【发布时间】:2015-11-20 15:10:16 【问题描述】:

我有一个 linq ForEach 语句,它为列表中的每个 Report 对象调用一个方法。此方法为每个调用返回一个数据表数组,我想以某种方式获取返回的数据。我如何使用 linq ForEach 而不是老派foreach (var x in x's) ... 来做到这一点?这是我的代码:

Reports.ForEach(r => r.LoadTableData(Event, Human, Animal, exData));

如何取回LoadTableData 返回的每个DataTable[]

【问题讨论】:

【参考方案1】:

改用Select

var tables = Reports.Select(r => r.LoadTableData(Event, Human, Animal, exData));

Select 将一个集合映射到另一个集合(在这种情况下,Report 的集合到DataTable[] 的集合)。事实上,Select 方法在 Scala 和 Ruby 等其他语言中通常称为map

ForEach 对源集合中的每个元素执行任意操作。

顺便说一句,ForEach 不是 LINQ 扩展的一部分。这只是List<T> 上的另一种方法。

【讨论】:

哦,很高兴知道。以为它是 linq 的一部分,因为那是我唯一一次真正使用它,谢谢! 谢谢,我在做了 ForEachWithReturn 扩展方法后发现了这个。

以上是关于如何获取 linq `ForEach` 语句以返回有关为每个列表对象进行的方法调用的数据?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Linq 替换 foreach 语句

C# 使用IEnumerable,yield 返回结果,同时使用foreach时,在循环内修改变量的值无效

LINQ ForEach 可以有 if 语句吗?

如何使用 Foreach 遍历集合以构建 XDocument?

如何将以下 SQL 语句转换为 LINQ 方法语法

LINQ 常用from