我试图使用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。
我很难获得任何可以获得有效语法的东西。有人帮忙吗?
答案 0 :(得分:3)
SelectMany
和Max
可能会产生您想要的结果。
还要考虑使用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();