【问题标题】:Get last index of number获取最后一个数字索引
【发布时间】:2025-12-17 14:45:01
【问题描述】:

很简单的问题:

我想知道如何获取数组中“1”的最后一个索引?

例如{0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0} = 13。

目前我使用这种方法:

for (int i = 0; i < val.Count; i++)
{
     if (val[i] == 1)
     {
          value = i + 1;
          break;
     }
}

但它会在收到第一个时停止。

谢谢!

【问题讨论】:

    标签: c# arrays list indexing int


    【解决方案1】:

    您是否尝试过寻找解决方案?有一种方法可以做到这一点:

    Array.LastIndexOf方法

    返回一维数组或数组的一部分中最后一次出现的值的索引。

    var index = Array.LastIndexOf(source, valueYoureLookingFor);
    

    【讨论】:

    • 谢谢!你能帮我做一件事吗?我需要检查数组是否包含 2 个或多个“1”。
    • @user3476998 你可以使用 LINQ:source.Count(x =&gt; x == 1) &gt; 1
    【解决方案2】:

    由于中断,它在第一个停止,如果您删除中断,您的代码应该可以解决问题。

    for (int i = 0; i < val.Count; i++)
    {
         if (val[i] == 1)
         {
              value = i + 1;
         }
    }
    

    编辑:击败我,MarcinJuraszek 的解决方案要好得多。

    【讨论】: