的IEnumerable <列表<T>&GT;列出<t>

时间:2017-05-09 15:38:30

标签: c# .net linq ienumerable

我正在处理内存中对象的查询:

var rankingSummary = resultSet
                    .Where(r => r.Accuracy >= 95 && r.Accuracy <= 105)
                    .Select(r => r.Results).Where(r => r.ResultType == 1)
                    .Select(r => r.Subjects)

Subjects是Result类具有的List<Subject>属性。我现在在查询中的位置是IEnumerable<List<Subject>>。我想要的是将它们全部加入到单个列表中,因为我根据每个主题的属性进一步查询。是否有一种优雅或实用的方法来实现这一目标?

2 个答案:

答案 0 :(得分:4)

我相信这应该有效:

var rankingSummary = resultSet
                    .Where(r => r.Accuracy >= 95 && r.Accuracy <= 105)
                    .Select(r => r.Results).Where(r => r.ResultType == 1)
                    .SelectMany(r => r.Subjects)
                    .ToList();

答案 1 :(得分:3)

您正在寻找的是SelectMany

var rankingSummary = resultSet
                .Where(r => r.Accuracy >= 95 && r.Accuracy <= 105)
                .Select(r => r.Results).Where(r => r.ResultType == 1)
                .SelectMany(r => r.Subjects)
                .ToList();