Как упростить код с помощью LINQ

#c# #linq

#c# #linq

Вопрос:

Мне нужно знать, как реализовать приведенную ниже логику, чтобы получить список элементов с помощью 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);
    }
}
  

Любое решение этой проблемы будет оценено по достоинству.

Ответ №1:

Вы могли бы попробовать это:

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

Комментарии:

1. StokeResult должно быть StockResult