2012-03-21 7 views
6

リストをフィルタリングしようとしているので、ブリスベンの郊外のみのリストになりますか?ラムダ式の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句は、シーケンスにIEnumerable<T>を返すどこのような

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

LINQ式をフィルタリングします。私は通常varで結果を取得しますが、ToList()を使用して結果をリストに投影することもできます。あとでリストで何をする必要があるかだけで決まります。

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

新しいリストを割り当てる必要はありません。 WhereToList()の両方のメソッドは、参照でキャプチャするだけの新しいシーケンスを返します。

関連する問題