2010-09-08 209 views
0

我最近开始学习LINQ。为了更好地理解这项技术,我尝试使用LINQ重写我之前的一些程序。我的意思是我尝试用linq查询替换foreach方法等。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的任何元素的元素列表检索每个元素。

当然,我忽略了IdconsequentElementsList在您的示例中是私有的事实。