将代码从Foreach循环转换为Linq

时间:2014-02-13 11:19:36

标签: c# .net linq c#-4.0 foreach

如何将以下代码从foreach循环转换为Linq?

代码:

foreach (WorkItemLinkInfo item in testResults)
{
    var testitem = project.Store.GetTestItem(item.TestId);
    testItemList.Add(testitem);                                 
}

4 个答案:

答案 0 :(得分:3)

试试这个:

testResults.Select(x=>project.Store.GetTestItem(x.TestId))

答案 1 :(得分:2)

这是LINQ版本:

var testItemList = testResults.
 Select(item=> project.Store.GetTestItem(item.TestId)).
  ToList();

对于每个测试结果项,按测试结果项的ID获取测试项

答案 2 :(得分:1)

testItemList.AddRange(testResults.Select(t => project.Store.GetTestItem(t.TestId)));

如果您在此循环之前创建testItemList,则可以执行以下操作:

var testItemList = testResults.Select(t => project.Store.GetTestItem(t.TestId)).ToList();

答案 3 :(得分:1)

这应该这样做:

testItemList = testResults.Select(item => 
                                 project.Store.GetTestItem(item.TestId))
                          .ToList();