C#搜索列表

时间:2014-05-09 15:50:47

标签: c# list

我刚刚开始使用C#,我想知道使用列表的方法是什么。说我有一个班级

    class Node
    {
       field1;
       field2;

       method1()
    }

和代码

    List<Node> N;

我该怎么做:

  1. 浏览列表中的每个成员,搜索特定值。说搜索,以便field1 = 24
  2. 找到后,请致电方法

5 个答案:

答案 0 :(得分:4)

你可以使用LINQ来做到这一点:

foreach(var node in N.Where(n => n.field1 == 24)) {
  node.method1();
}

答案 1 :(得分:2)

您可以将foreach语句用于此目的

foreach(var node in nodes)
    if(node.field1==24)
        node.method1();

其中nodesN

使用LINQ

的另一种方式
nodes.Where(x=>x.field1==24).ForEach(x=>x.method1());

最后但并非最不重要的是,您可以过滤列表,然后遍历列表中的元素,您可以调用您的方法。

var filteredNodes = nodes.Where(x=>x.field1==24);

foreach(var node in filteredNodes)
    node.method1();

答案 2 :(得分:1)

您可以使用ForEach()方法,该方法对List的每个元素执行指定的操作。

N.ForEach(x => { if (x.field1 == 24) { x.method1(); } });

答案 3 :(得分:0)

使用LINQ:

var results = N.Where(node => n.field1 == 24);

foreach(var result in results)
{
    result.method1();
}

答案 4 :(得分:0)

尝试这样的事情

var foundN  = N.Where(n=>n.field1=24); 
foreach( Node node in foundN)   
    Method(); 
//  or 
//   node.Method();