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

C#中IndexOf方法计数异常:始终返回0的问题求助

问题分析与修复方案

嘿,我一眼就瞅出问题所在啦!你的IndexOf方法里,counter变量的声明位置和递增时机完全错了,这就是为啥调用它永远返回0的原因。

问题拆解

  • 你把int counter = 0;放在了for循环的内部,这意味着每遍历一个新节点,counter都会被重置为0,根本没法累计索引值。
  • 而且你是在判断text == i.Text之后才执行counter++,就算当前节点不匹配,counter刚加1就进入下一次循环被重置,永远没法正确计数。

修复后的代码

public int IndexOf(string text) { 
    // 把counter移到循环外部,只初始化一次
    int counter = 0; 
    for (Node i = Head; i != null; i = i.Next) { 
        if (text == i.Text) { 
            return counter; 
        }
        // 每次检查完当前节点,不管匹配与否,都递增计数
        counter++; 
    } 
    return -1; 
}

额外小提示

如果你的场景需要更灵活的字符串比较(比如忽略大小写),建议用string.Equals(text, i.Text, StringComparison.OrdinalIgnoreCase)代替直接的==,这样能让方法的适用性更强。

内容的提问来源于stack exchange,提问作者user8716535

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:35:08