我有一份汽车清单。每辆汽车都有乘客名单。
如何使用Linq查找载有社会安全号码为999-99-9999的乘客的车?
这是我有多远。
var Passenger= Cars.SelectMany(c => c.Passengers).Where(p => p.SSN == "999-99-9999");
这给了我乘客。但我想要这位乘客所在的车。
答案 0 :(得分:4)
您可以编写如下查询:
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是值类型,则返回默认值)。
答案 1 :(得分:2)
假设您有一个变量List<Car> cars
和Car
公开了一个属性
List<Passenger> Passengers
和Passenger
公开了一个属性string SSN
var p = cars.Where(s => s.Passengers.Any(p => p.SSN == "999-99-9999"))