返回嵌套列表中的最小/最大数量

时间:2017-12-04 12:14:02

标签: c# linq

我试图使用Linq在嵌套列表中找到最小/最大数字。

示例类将是:

public class ListA
{
    public HashSet<HashSet<int>> nestedList;

    public ListA()
    {
        nestedList = new HashSet<HashSet<int>>()
        {
            new HashSet<int> { 1, 3, 5, 7 },
            new HashSet<int> { 2, 12, 7, 19 },
            new HashSet<int> { 6, 9 , 3, 14 }
        };
    }

    public int MaxNumber
    {
        // return the highest number in list
    }
}

在上面的示例中,最小数字为1,最大数字为19。

我很难获得任何可以获得有效语法的东西。有人帮忙吗?

2 个答案:

答案 0 :(得分:3)

SelectManyMax可能会产生您想要的结果。

还要考虑使用DefaultIfEmpty(默认情况下对您的上下文有意义) - 如果Max为空,这将确保nestedList不会抛出异常

public int MaxNumber
{
    get { return nestedList.SelectMany(z => z).DefaultIfEmpty(0).Max(); }
}

答案 1 :(得分:1)

nestedList.SelectMany(item => item).Max();

nestedList.SelectMany(item => item).Min();