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

如何从List<string>中筛选以"OO"开头的元素?代码报错求助

问题分析与修复

你的代码存在几个明显问题,导致无法正常运行并得到预期结果:

  • 变量名大小写不一致:定义的变量是mylist,但调用Add方法时写成了Mylist,C#是大小写敏感语言,这会直接引发编译错误。
  • 筛选逻辑错误:x[0] == 'OO'完全不成立——x[0]取的是字符串的单个字符,而'OO'是无效的字符常量(字符只能包含单个字符),就算改成双引号的字符串,单字符也无法和双字符的"OO"相等,同时还没考虑字符串长度不足2时的索引越界问题。

修复后的完整代码

List<string> mylist = new List<string>();
mylist.Add("5876575");
mylist.Add("OO12571");
mylist.Add("12287324");
mylist.Add("87665751");
mylist.Add("97213233");
mylist.Add("87612222");
mylist.Add("OO76566");

List<string> matches = mylist.Where(x => x.StartsWith("OO")).ToList();

关键说明

  • 统一变量名大小写:将Mylist修正为mylist,同时保证Add方法首字母大写(符合C#帕斯卡命名规范)。
  • 使用StartsWith方法:这是判断字符串开头最安全简洁的方式,它会自动处理字符串为空、长度不足的情况,避免手动索引可能触发的IndexOutOfRangeException。
  • 如果需要忽略大小写匹配,可以使用重载方法:x.StartsWith("OO", StringComparison.OrdinalIgnoreCase),但你的需求是精确匹配"OO"开头,默认的精确匹配即可满足。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:23:14