You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用array.Max()后,如何获取数组最大值对应的索引而非值?

如何获取数组最大值对应的下标?

你完全不用纠结,其实有几种很直接的实现方式,刚好能解决你的需求:

  • 快速实现(适用于单个最大值的场景)
    直接用Array.IndexOf()方法配合你已经用到的Max()就行,一行代码就能拿到下标:

    int maxIndex = Array.IndexOf(arrayname, arrayname.Max());
    

    注意:数组默认是0索引的,如果你要显示类似「第15小时」这种1开头的序号,记得把结果加1,也就是maxIndex + 1。不过如果数组里有多个相同的最大值,这个方法只会返回第一个出现的那个下标。

  • 灵活遍历(支持多最大值场景)
    如果担心数组里有多个相同的最大值,或者需要自定义逻辑(比如找最后一个出现的最大值),手动遍历数组会更靠谱:

    int[] arrayname = // 你的数组
    int maxValue = arrayname.Max();
    int targetIndex = -1;
    
    for (int i = 0; i < arrayname.Length; i++)
    {
        if (arrayname[i] == maxValue)
        {
            targetIndex = i;
            // 如果要找第一个最大值,这里加break;要找最后一个就去掉break,继续循环
            break;
        }
    }
    
    // 输出1开头的序号
    Console.WriteLine($"最大值对应的是第 {targetIndex + 1} 小时");
    

这两种方法都很简单,完全不需要复杂的额外操作,根据你的实际场景选就行~

内容的提问来源于stack exchange,提问作者William. Foster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:41:56