Linq选择嵌套行

时间:2013-11-28 14:11:17

标签: c# linq

我有以下课程:

public class PingtreeTier
{
    public BuyerType BuyerType { get; set; }
    public int ID { get; set; }
    public int MaxRequests { get; set; }
    public IEnumerable<PingtreeNode> Nodes { get; set; }
    public int Seq { get; set; }
    public int Timeout { get; set; }
    public bool Weighted { get; set; }
}

正如您所见,PingtreeTier包含IEnumerable<PingtreeNode>类。此PingtreeNode类具有名为Status的属性。使用Linq,我只需要选择PingtreeNode Status ='Active'的层/节点。

任何人都会提供帮助,因为我正在努力解决这个问题。

1 个答案:

答案 0 :(得分:4)

如何在此处使用.Any.All

var results = tiers.Where(t => t.Nodes.Any(n => n.Status == "Active"));

这将选择包含至少一个PingtreeTierPingTreeNode等于“有效”的Status个。{/ p>

如果您只想选择其中PingtreeTier 所有处于活动状态的PingTreeNode,您可以使用.All扩展方法代替:

var results = tiers.Where(t => t.Nodes.All(n => n.Status == "Active"));