【问题标题】:C# Get index values of max value in 2D integer array [duplicate]C#获取二维整数数组中最大值的索引值[重复]
【发布时间】:2013-10-13 21:29:39
【问题描述】:

有没有更流畅的方法?在用随机数填充数组(以及用户确定二维数组大小的位置)后,我得到了这样的最大值:

int largest = array.Cast<int>().Max();

现在要获取索引值,我能想到的唯一方法就是这样做:

for (int i = 0; i < rowsize); i++) {
            for (int j = 0; j < columnsize); j++) {
                if (largest == array[i, j])
                    Console.WriteLine("The index values of the largest value are {0} and {1}", i, j);
            }
        }

我在想有一种方法可以使用 IndexOf 方法,但找不到。我可能是错的,但 foreach 循环似乎不支持索引值。

【问题讨论】:

标签: c# multidimensional-array indexing


【解决方案1】:

在您当前的情况下,可能会出现重复的最大值。您可能会节省半毫秒,将要显示的消息保存到局部变量并在循环后以 message1\r\n\message2\r\n\r\nmessage3 的形式打印。但是,如果您只对第一次打破循环感兴趣,则可能值得考虑。

不管怎样,你基本上都很好。

【讨论】:

  • 是的,随机填充数组的方式,最大值可能会出现不止一次,我希望所有这些索引都出现在它们出现的地方。我将不得不重写输出,让它读起来更好一点。