2010-09-08 2 views
0

Недавно я начал изучать LINQ. Чтобы лучше понять эту технологию, я пытаюсь переписать некоторые из моих предыдущих программ с помощью LINQ. Я имею в виду, что я пытаюсь заменить методы foreach и т. Д. С помощью запросов linq.Linq, сравнивающий два списка - обучение linq

Сегодня у меня возникла проблема. У меня есть список объектов элемента

List<Element> elementList 
public class Element 
    { 
     private string Id; 
     private List<Element> consequentElementsList; 


    } 

Список элементов содержит все элементы, которые размещены на форме. Каждый элемент имеет список консективных элементов. Мне нужно найти все элементы предшественников элемента, который я выбрал. Есть ли способ сделать это в LINQ?

ответ

0

Попробуйте это:

var element = // a single element 
var query = from e in elementList 
      where e.consequentElementsList.Any(ce => ce.Id == element.Id) 
      select e; 

Он извлекает каждый элемент из списка элементов, где список последующего элемента содержит какой-либо элемент, соответствующий идентификатор, который вы выбрали.

Конечно, я проигнорировал тот факт, что Id и consequentElementsList являются частными в вашем примере.