如何使用lambda表达式过滤C#中的列表?

时间:2012-03-21 05:34:29

标签: c# lambda

我正在尝试过滤一个列表,以便生成一个只有布里斯班郊区的列表?

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

1 个答案:

答案 0 :(得分:24)

使用Where子句过滤序列

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

LINQ表达式,如Where return IEnumerable<T>。我通常使用var捕获结果,但您也可以使用ToList()将结果投影到列表中。只是取决于你以后需要对列表做什么。

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

请注意,通过上述内容,您无需分配新列表。 WhereToList()方法都会返回一个新序列,您需要使用该引用进行捕获。