我需要在一个数组列表中找到最大的数组。使用基本的技巧,我可以做到这一点
List<int[]> intArrayList;
...
int largestArrayIndex = 0;
for (int i = 1; i < intArrayList.Count; i++)
{
if (intArrayList[largestArrayIndex].Length <
intArrayList[i].Length)
{
largestArrayIndex = i;
}
}
但是,我很好奇,是否有一种更简洁的方法可以用Linq来实现这一点?
**编辑:**我想要最大的数组。所以,如果我有一个{ int[5],int[7],int[9],int[3] }的列表,我想要int[9]数组的索引或引用。
谢谢。
4条答案
按热度按时间91zkwejq1#
你可以这样做:
性能方面,它只会迭代列表一次,所以我想说它和你的代码差不多。
编辑:只是想澄清我的代码返回最长的数组,而不是最长的长度。
干杯
q5lcpyga2#
另一种方式:
它返回最长的数组。如果你需要一个最长数组的索引,那么:
whlutmcx3#
我相信原来的方法是好的。下面的代码应该做同样的事情:
30byixjq4#
这是一个复杂度为O(n)的函数,但是你需要在列表中至少有一个数组。