[英]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();
在這里,我得到的FirstProduct
組List
僅存在於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.