如何获取 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` 语句以返回有关为每个列表对象进行的方法调用的数据?的主要内容,如果未能解决你的问题,请参考以下文章
C# 使用IEnumerable,yield 返回结果,同时使用foreach时,在循环内修改变量的值无效