2012-03-21 24 views
6

Listeyi filtrelemeye çalışıyorum, bu sadece brisbane banliyösünde bir liste ile sonuçlanıyor?C# lambda ifadesi ile bir liste nasıl filtrelenir?

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; } 
    } 

cevap

19

kullanımlar Where maddesi bir sekans IEnumerable<T> geri nerede gibi

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

LINQ ifadeleri filtre. Genellikle sonucu var ile yakalarım ancak sonucu bir listeye yansıtmak için ToList()'u kullanabilirsiniz. Sadece listeyle ne yapmanız gerektiğine bağlı.

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

Yukarıdakilerle birlikte yeni bir liste ayırmanız gerekmediğini unutmayın. Where ve ToList() yöntemlerinin her ikisi de, yalnızca referansla yakalamanız gereken yeni bir diziyi döndürür.

İlgili konular