我有一個物件 A,它有一個欄位 DocumentName,另一個嵌套在它里面的物件叫做物件 B,它有一個叫做 Sku 的欄位。I Have a List<ObjectA> and List<ObjectB>我現在需要將 ObjectA.ObjectB.Sku 與 ObjectB.Sku 進行比較以檢索相應的物件 A。我將如何在 C# 中執行此操作?我嘗試了以下方法,但它不起作用:
foreach (var item in blockProducts)
{
foreach (var block in flyerBlocks)
{
CurrentBlock = (FlyerBlock)block.Products.Where(x => x.Sku.Equals(item.Sku));
}
}
blockProducts 代表 ListObjectB,而 flyerBlocks 代表 ListObjectA。任何幫助,將不勝感激
uj5u.com熱心網友回復:
請查看檔案。Equals評估您是否有一個實體。如果您想根據實體的狀態比較兩個實體是否相等,您可以覆寫Equals.
uj5u.com熱心網友回復:
所以我弄清楚我做錯了什么。這就是我解決問題的方法,我不需要第二個 foreach。
foreach (var item in blockProducts)
{
var CurrentBlock = flyerBlocks
.FirstOrDefault(
b => b.Products.Any(p => p.Sku == item.Sku)
);
}
uj5u.com熱心網友回復:
您可以使用嵌套 linqAny()作為Where()子句。然后你可以做這樣的事情:
IEnumerable<ObjectA> result =
flyerBlocks.Where(x =>
x.Products.Any(y =>
blockProducts.Any(z => y.Sku.Equals(z.Sku))));
注意:這種 linq 也可以在一定程度上在物體框架上作業
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/476604.html
