c# |
您所在的位置:网站首页 › 二维数组的获取 › c# |
我有一个像这样的二维数组列表: static void Main(string[] args) { List kidsL = new List(); int[,] square1 = new int[8, 8]; int[,] square2 = new int[8, 8]; int[,] square3 = new int[8, 8]; for (int i = 0; i < 8; i++) for (int j = 0; j < 8; j++) { square1[i, j] = 1; square2[i, j] = 2; square3[i, j] = 3; } kidsL.Add(square1); kidsL.Add(square2); kidsL.Add(square3); Console.WriteLine(); Console.Read(); }我想确定每个数组的总和并找到最大值/最小值(在本例中最大值是 192)。 有没有一种简单的方法可以做到这一点,还是我必须循环使用老式的方法? 最佳答案 那么,你可以使用下面的代码来获取 IEnumarable来自int[,] var enumarable = from int item in square2 select item;此外,您还可以使用Cast()方法以解开 int[,]至IEnumarable . 然后你可以使用Max()和Min() linq 方法。 var min = kidsL.Min(x => (from int item in x select item).Sum()); var max = kidsL.Max(x => (from int item in x select item).Sum()); // or var min = kidsL.Min(x => x.Cast().Sum())或 var Max = (from int[,] array in kidsL select (from int item in array select item).Sum()) .Max();更新 from int[,] array in kidsL select (from int item in array select item).Sum()查询返回 IEnumarable其中包含总和。为了获得 max 的索引,您应该使用 ToList 将 IEnumarable 转换为数组或列表或ToArray() . var sumList = (from int[,] array in kidsL select(from int item in array select item).Sum()) .ToList(); var maxSum = sumList.Max(); var maxInd = sumList.IndexOf(maxSum);sumList是一个整数列表并包含总和。那么你可以使用Max获得最大和和 IndexOf 的方法获取最大值的索引。 关于c# - 如何在 C# 中获取二维数组列表的最大值/最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998706/ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |