LINQ - 列表过滤中的列表

Guy*_*y Z 0 .net linq lambda list

我有这些课程:

public class Flight
{
    public string FlightNum { get; set; }
    public List<Pax> Pax { get; set; }
}

public class Pax
{
    public string PaxName { get; set; }
    public string PaxSurName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想过滤航班,以便它只包含乘客姓名是 我试过的某个字符串的航班:

var paxList = flights.Where(f => f.Pax.Where(p => p.PaxName == "d"));
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用......例如:我想在SINGLE Lambda表达式中使用它

Dan*_*ker 8

Where需要一个返回a的函数boolean.

var paxList = flights.Where(f => f.Pax.Any(p => p.PaxName == "d"));
Run Code Online (Sandbox Code Playgroud)

f.Pax.Any(p => p.PaxName == "d")如果任何内容 pPaxName精确的标准匹配,则嵌套表达式将返回true "d".

因此产生的清单将是包含满足该标准的任何乘客的航班(而不是乘客).我提到这个因为paxList可能不是一个好的变量名.