我有一份汽车清单。每辆车都有一份乘客清单。
如何使用 Linq 查找乘客的社会安全号码为 999-99-9999 的汽车?
这就是我走多远。
var Passenger= Cars.SelectMany(c => c.Passengers).Where(p => p.SSN == "999-99-9999");
这给了我乘客。但我想要这位乘客所在的汽车。
您可以编写如下查询:
var selectedCars = cars.Where(c => c.Passengers.Any(p => p.SSN == "999-99-9999"));
如果你想要一辆有乘客的单车,你可以使用FirstOrDefault()
var car = cars.Where(c => c.Passengers.Any(p => p.SSN == "999-99-9999"))
.FirstOrDefault();
如果没有找到汽车,这将返回 null(如果 Car 是值类型,则返回默认值)。
假设你有一个变量List<Car> cars
并Car
暴露一个属性
List<Passenger> Passengers
并Passenger
暴露一个属性string SSN
var p = cars.Where(s => s.Passengers.Any(p => p.SSN == "999-99-9999"))