簡體   English   中英

比較兩個列表並根據 Linq C# 中的 Id 從第一個列表返回數據

[英]Compare Two List and return Data from first list based on Ids in Linq C#

var solutionItems = solutionInfoResponse
  .Items
  .Where(x => solutionInfoResponse
     .ProductGroup
     .FirstOrDefault(p => productGroupIds.Contains(p.GroupId))
     .Items
     .Any(it => it.Id == x.ItemId))
  .ToList();

在這里,我得到的FirstProductList僅存在於ProductGroupsIds中,因此我希望所有產品組都具有相同的條件。 請幫我。

這里

 public class ProductGroup
    {
        public string GroupId { get; set; }
        public List<ProductGroupItem> Items { get; set; }

    }

  public class ProductGroupItem
    {
        public string Id { get; set; }
        public string Description { get; set; }
       
    }

public class SolutionItem
{
    public string ItemId { get; set; }

}

最后

   public class SolutionInfoResponse
    {
        public List<SolutionItem> Items { get; set; }
        public SolutionInfo SolutionInfo { get; set; }
        public List<ProductGroup> ProductGroup { get; set; }
    }

如果同一項目可能在多個組中,我們不應該使用FirstOrDefault而是使用Where 我們獲取所有此類組,然后檢查是否有任何groupItem具有所需的Id

var solutionItems = solutionInfoResponse
  .Items
  .Where(item => solutionInfoResponse
     .Groups
     .Where(group => productGroupIds.Contains(group.GroupId))
     .SelectMany(group => group.Items)
     .Any(groupItem => groupItem.Id == item.Id))
  .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM