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

时间:2015-08-26 14:09:04

标签: c# linq linq-to-sql foreach linq-to-entities

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

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

如何找回DataTable[]正在返回的每个LoadTableData

1 个答案:

答案 0 :(得分:16)

改为使用Select

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

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

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

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