如何将 linq `ForEach` 语句获取到每个列表对象的方法调用的 return 数据?

How to get linq `ForEach` statement to return data on the method call being made for each list object?

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

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

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

改用Select

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

Select 将一个集合映射到另一个集合(在本例中,Report 的集合映射到 DataTable[] 的集合)。事实上,Select 方法在其他语言如 Scala 和 Ruby.

中通常被称为 map

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

顺便说一句,ForEach 不是 LINQ 扩展的一部分。这只是 List<T>.

上的另一种方法