【发布时间】:2013-05-13 20:12:05
【问题描述】:
我有这段代码,其中entities 是由参数接收的List <String>。我试图以任何可能的方式将entities[x] 转换为字符串,即使它已经是字符串。我还检查了entities[x] is String 总是返回true。
for(int x = 0; x < entities.Count; x++)
{
Console.WriteLine(entities[x] + " " + "a pencil g smartboard tabletc pencil ".IndexOf(entities[x]));
}
结果是:
pencil 30
smartboard 11
tabletc -1
为什么 indexof 为“tabletc”返回 -1?
【问题讨论】:
-
请展示一个完整的例子,包括你在哪里填充
entities。 -
可能是因为在实体中你有
tabletpc -
@FredericoSchardong - 我只是猜测实体列表中的值拼写不同。
-
您根本无法向我们展示实际代码:如果您是,它将在第一行打印出
pencil 2,因为这是字符串中“铅笔”的第一个位置.正如其他人所说,请仔细检查entities中的字符串是否是您所期望的。IndexOf()工作得很好。 -
什么是
CultureInfo.CurrentCulture?您从“终端窗口”(cmd窗口)复制粘贴字符,但某些字符无法写入该窗口,因此可能存在一些未显示的奇怪字符。string.Join(",", entities[2])返回什么?甚至string.Join(",", entities[2].Select(ch => ((int)ch).ToString("X4")))?