我需要知道如何使用LINQ在不使用foreach的情况下实现以下逻辑来获取项目列表。另外,在将项目添加到新列表之后,我需要从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);
    }
}


任何对此的解决方案将不胜感激。

最佳答案

您可以尝试以下一种方法:

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();

10-04 11:52