LINQ - 一个列表过滤中列出
我有这些类:LINQ - 一个列表过滤中列出
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表达式
Where
需要返回boolean
的函数。
var paxList = flights.Where(f => f.Pax.Any(p => p.PaxName == "d"));
嵌套表达f.Pax.Any(p => p.PaxName == "d")
将返回true,如果任何p
标准匹配PaxName
正是"d"
。
因此,结果列表将包含任何满足该标准的乘客的航班(不是乘客)。我提到这是因为paxList
可能不是一个好的变量名。
或。所有()如果所有PaxName的需求是“d” – 2012-01-03 11:50:28
这是惊人的 – 2012-01-03 11:51:25
@Pauli - 将是一个非常奇怪的飞行!每个人都可以为同名的人参加聚会。 :) – 2012-01-03 11:51:44
当然是行不通的,如果需要返回布尔函数求,但如果本身返回新的IEnumerable – 2012-01-03 11:48:41