我需要在数组列表中找到最大的数组.使用基本技术,我可以做到这一点
List<int[]> intArrayList;
...
int largestArrayIndex = 0;
for (int i = 1; i < intArrayList.Count; i++)
{
if (intArrayList[largestArrayIndex].Length <
intArrayList[i].Length)
{
largestArrayIndex = i;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我很好奇是否有更简洁的方法与Linq这样做?而且,两者之间会有任何性能差异吗?
编辑: 我想要最大的数组.所以,如果我有一个{int [5],int [7],int [9],int [3]的列表,我想要int [9]数组的索引或引用.
谢谢.
你可以这样做:
var longest = intArrayList.Aggregate((i1,i2) => i1.Length > i2.Length ? i1 : i2);
Run Code Online (Sandbox Code Playgroud)
性能方面,它只会迭代列表一次,所以我会说它与你的代码几乎相同.
编辑:只是想澄清我的代码返回最长的数组,而不是最长的数组.
干杯