如何使用lambda表达式过滤对象列表?

Teb*_*ebo 5 linq lambda

我知道我不应该拥有相同价值的id.这只是虚构的,所以忽略了这一点.

我有:

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" });
Run Code Online (Sandbox Code Playgroud)

我想使用Lambda Expression来检索id为1的所有汽车.

预期结果:

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

问题是更多地基于外键过滤对象列表.

Jon*_*eet 17

使用LINQ:

IEnumerable<Car> matchingCars = carList.Where(car => car.id == 1);
Run Code Online (Sandbox Code Playgroud)

使用List<T>.FindAll:

List<Car> matchingCars = carList.FindAll(car => car.id == 1);
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢LINQ方法 - 注意这是懒惰的,而是FindAll立即查看整个列表并构建一个包含结果的新列表.


Jar*_*Par 5

试试这个

var match = carList.Where(x => x.id ==1 );
Run Code Online (Sandbox Code Playgroud)