Как я могу отфильтровать список объектов с помощью лямбда-выражения?

Я знаю, что у меня не должно быть идентификатора с тем же значением. Это является просто фиктивным, поэтому пропустите это.

Я имею:

List<Car> carList = new List<Car>();
carList.Add(new Car() { id = 1, name = "Honda" });
carList.Add(new Car() { id = 2, name = "Toyota" });
carList.Add(new Car() { id = 1, name = "Nissan" });

Я хочу использовать Лямбда-выражение для получения всех автомобилей, которые имеют идентификатор 1.

Ожидаемый результат:

-- Id: 1, Name: Honda
-- Id: 1, Name: Nissan

Проблема больше фильтрует список объектов на основе внешнего ключа.

5
задан mghie 27 March 2010 в 11:11
поделиться

2 ответа

Использовать LINQ:

IEnumerable<Car> matchingCars = carList.Where(car => car.id == 1);

Использование List .FindAll :

List<Car> matchingCars = carList.FindAll(car => car.id == 1);

Я предпочел бы подход LINQ лично - обратите внимание, что это лениво, тогда как FindAll сразу просматривает весь список и строит новый список с результатами.

17
ответ дан 18 December 2019 в 07:08
поделиться

Попробуйте это

var match = carList.Where(x => x.id ==1 );
5
ответ дан 18 December 2019 в 07:08
поделиться