Linq表达式查找List <list <int>&gt;?</list <int>的最大值

时间:2011-06-17 04:05:21

标签: c# linq

是否有一个很酷的Linq表达式来查找List<List<int>>中的max int值?

目前正在做:

int maxValue = 0;
foreach(List<int> valueRow in values)
{
    // linq expression to get max value
    int value = valueRow.OfType<int>().Max(); 
    if (value > maxValue)
    {
        maxValue = value;
    }
}

2 个答案:

答案 0 :(得分:13)

您可以使用SelectMany()来展平嵌套列表,然后您可以获取结果序列的最大值:

int maxValue  = values.SelectMany( x => x).Max();

答案 1 :(得分:3)

是的。您可以获得每个嵌套列表的最大值,如下所示:

int maxValue = values.Max(row => row.Max());

旁注:您的OfType<int>不是必需的,因为该列表已经是List<int>