我知道我不应该拥有相同价值的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" });
我想使用Lambda Expression来检索id为1的所有汽车。
预期结果:
-- Id: 1, Name: Honda -- Id: 1, Name: Nissan
问题是更多地基于外键过滤对象列表。
答案 0 :(得分:16)
使用LINQ:
IEnumerable<Car> matchingCars = carList.Where(car => car.id == 1);
使用List<T>.FindAll
:
List<Car> matchingCars = carList.FindAll(car => car.id == 1);
我更喜欢LINQ方法 - 注意这是懒惰的,而FindAll
会立即查看整个列表并构建一个包含结果的新列表。
答案 1 :(得分:5)
试试这个
var match = carList.Where(x => x.id ==1 );