Как отфильтровать список в C # с лямбда-выражением? - PullRequest
10 голосов
/ 21 марта 2012

Я пытаюсь отфильтровать список, чтобы получился список только с пригородом Брисбена?

с #

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 Ответ

25 голосов
/ 21 марта 2012

Используйте 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()

Обратите внимание, что с учетом вышесказанного вам не нужно выделять новый список.Методы Where и ToList() возвращают новую последовательность, которую вам просто нужно захватить со ссылкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...