【问题标题】:Convert the code from Foreach loop to Linq将代码从 Foreach 循环转换为 Linq
【发布时间】:2014-03-12 05:46:18
【问题描述】:

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

代码:

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

【问题讨论】:

  • 测试结果类型是什么?
  • @mrida,类型是(local variable)WorkItemLinkInfo[] testResults

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


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    这是 LINQ 版本:

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

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

    【讨论】:

      【解决方案3】:

      应该这样做:

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

      【讨论】:

        【解决方案4】:
        testItemList.AddRange(testResults.Select(t => project.Store.GetTestItem(t.TestId)));
        

        如果您在此循环之前创建 testItemList,您可以这样做:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-17
          • 2014-03-16
          • 2011-06-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-01
          • 1970-01-01
          相关资源
          最近更新 更多