我有这些课程:
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; }
}
我想过滤航班,以便它只包含乘客姓名为某个字符串的航班 我试过了:
var paxList = flights.Where(f => f.Pax.Where(p => p.PaxName == "d"));
上面的代码不起作用...... 例如:我想在一个单一的Lambda表达式中使用
答案 0 :(得分:8)
Where
需要一个返回boolean
。
var paxList = flights.Where(f => f.Pax.Any(p => p.PaxName == "d"));
如果任何 f.Pax.Any(p => p.PaxName == "d")
符合p
正好PaxName
的标准,则嵌套表达式"d"
将返回true。
因此得出的列表将包含符合该标准的任何乘客的航班(而不是乘客)。我之所以提到这一点,是因为paxList
可能不是一个好的变量名。