2015-05-10 1 views
1

Рассмотрим я имею объект элемента, который ниже структурыLINQ к объектам: Как присоединиться различные свойства в том же списке объектов

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

[ОБНОВЛЕНО]:

Так что, если элемент имеет Имя родительского элемента становится подпунктом. Я хочу проверить, что все имена родительских элементов являются допустимыми значениями имен. Например, как и в образце данных, запасы 1 рассматриваются как подпункт, поскольку он имеет в качестве родительского элемента Service 1, а Service 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

Это должно возвращать список элементов, как и ожидалось Join

items.Select(x=>items 
      .select(y=> { 
          if(x.Name == y.ParentName) 
          return y; 
          else 
          return null; 
          }) 
      ).Where(x=>x!=null) 
Смежные вопросы