c#

您所在的位置:网站首页 二维数组的获取 c#

c#

2024-06-15 16:24| 来源: 网络整理| 查看: 265

我有一个像这样的二维数组列表:

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