2015-05-10 57 views
1

的同一個列表加入不同的特性考慮我有具有以下結構LINQ到對象:如何在對象

Name   Parent Item Name 
Service 1 
Stock 1  Service 1 
Stock 2 

Item對象[增訂]:

所以,如果一個項目有一個父項目名稱它成爲子項目。我想驗證所有父項名稱是有效的名稱值。例如,在示例數據中,庫存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 }; 
+0

你是什麼有效的名稱是什麼意思? –

+0

通過有效我的意思是它在名稱歸檔。 – ABCD

+0

*它在名稱字段*中是什麼意思? –

回答

2

爲了使其更具可讀性這裏有2個查詢:

var listOfNames = items.Select(t => t.Name); 

var answers = items.Where(item => i.ParentItemName != null && 
         !listOfItems.Contains(i.ParentItemName)); 

的答案給你的非有效的項目清單。

1

這應返回的項目列表中按預期加入

items.Select(x=>items 
      .select(y=> { 
          if(x.Name == y.ParentName) 
          return y; 
          else 
          return null; 
          }) 
      ).Where(x=>x!=null)