2012-03-21 124 views
6

我想過濾一個列表,以便它只在布里斯班郊區出現一個列表?如何使用lambda表達式篩選C#中的列表?

C#

Temp t1 = new Temp() { propertyaddress = "1 russel street", suburb = "brisbane" }; 
      Temp t2 = new Temp() { propertyaddress = "12 bret street", suburb = "sydney" }; 
      List<Temp> tlist = new List<Temp>(); 
      tlist.Add(t1); 
      tlist.Add(t2); 

      List<Temp> tlistFiltered = new List<Temp>(); 
      //tlistFiltered. how to filter this so the result is just the suburbs from brisbane? 

public class Temp 
    { 
     public string propertyaddress { get; set; } 
     public string suburb { get; set; } 
    } 

回答

19

使用Where子句來篩選序列

var tlistFiltered = tlist.Where(item => item.suburb == "brisbane") 

LINQ表達式等,其中返回IEnumerable<T>。我通常使用var捕獲結果,但是您也可以使用ToList()將結果投影到列表中。取決於你以後需要做什麼。

List<Temp> tlistFiltered = tlist 
    .Where(item => item.suburb == "brisbane") 
    .ToList() 

請注意,與上述你不必分配一個新的列表。 WhereToList()方法都會返回一個新的序列,您只需使用該引用捕獲該序列。