0

我有一份汽车清单。每辆车都有一份乘客清单。

如何使用 Linq 查找乘客的社会安全号码为 999-99-9999 的汽车?

这就是我走多远。

var Passenger= Cars.SelectMany(c => c.Passengers).Where(p => p.SSN == "999-99-9999");

这给了我乘客。但我想要这位乘客所在的汽车。

4

2 回答 2

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 是值类型,则返回默认值)。

于 2013-05-01T18:02:16.607 回答
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"))
于 2013-05-01T18:03:27.513 回答