如何使用LINQ简化代码

时间:2014-06-23 12:01:24

标签: c# linq

我需要知道如何在不使用foreach的情况下在LINQ的帮助下实现以下逻辑来获取项目列表。此外,我需要在将项目添加到新列表后从item列表中排除那些匹配的项目。

代码

List<StockResult> Stockres = new List<StockResult>();
foreach (var stkitms in item)
{
    if (Db.Stk.Any(a => a.INo == stkitms.ItemNum))
    {
      StockResult ss = new StockResult();
      ss.ItemNumber = stkitms.ItemNum;
      ss.FileName = stkitms.FileName;
      Stockres.Add(ss);
    }
}

任何解决方案都将受到赞赏。

1 个答案:

答案 0 :(得分:7)

你可以尝试这个:

List<StockResult> Stockres = item.Where(x=>Db.Stk.Any(a => a.INo == x.ItemNum))
                                 Select(x=> new StockResult()
                                 {
                                     ItemNumber = x.ItemNum,
                                     FileName = x.FileName
                                 }).ToList();