[英]LINQ to Objects: How to join different properties in the same List of objects
考慮我有一個具有以下結構的Item對象
Name Parent Item Name
Service 1
Stock 1 Service 1
Stock 2
[更新]:
因此,如果項目具有父項目名稱,則它將成為子項目。 我想驗證所有父項名稱是否為有效的Names值。 例如,在示例數據中,庫存1被視為子項,因為它將服務1作為父項目,服務1是有效的項目名稱,因為它已經存在於名稱中我已嘗試執行以下操作,但這樣做不返回結果:
var aa = from item in items
join
item2 in items
on item.Name equals item2.ParentRef.Value.ToString()
select new { item.Name };
為了使其更具可讀性,這里有2個查詢:
var listOfNames = items.Select(t => t.Name);
var answers = items.Where(item => i.ParentItemName != null &&
!listOfItems.Contains(i.ParentItemName));
答案為您提供了無效項目列表。
這應該返回Join所期望的項目列表
items.Select(x=>items
.select(y=> {
if(x.Name == y.ParentName)
return y;
else
return null;
})
).Where(x=>x!=null)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.