List <string>对象IndexOf返回-1。怎么样?

时间:2015-06-11 21:54:04

标签: c# list indexof

这对我来说非常困惑。不知何故,IndexOf(string)对象的List<string>方法返回-1,即使列表中的值为CLEARLY。

protected readonly List<string> validPrefixes = new List<string>() { "01", "02", "03", "FE", "E1", "E2", "E3" };

string prefix是&#34; 01&#34;

enter image description here

validPrefixes索引0是&#34; 01&#34;。

enter image description here

indexOf为-1。嗯......怎么样?

enter image description here

1 个答案:

答案 0 :(得分:1)

嗯,我不知道为什么,但看起来我的调试器对我说谎。我相信所发生的事情是validPrefixes所需的值都是小写的,因为我之前在我的代码中使用ToLower()方法影响了string addr变量。

出于某种原因,我的调试器似乎在某种程度上混合了循环的迭代。我只能通过使用char[]方法将变量分配给string.ToCharArray()来说明这种情况。

("01").ToCharArray()正在返回['0','1']prefix.ToCharArra()正在返回['f','e']

不知何故,调试器告诉我prefix的值为"01"prefix.ToCharArray()的值为['f','e']。后者是来自不同循环迭代的值。

由于我正在检查"FE"而不是"fe",我的代码无效,但我的调试器并没有告诉我这个。

我正在使用Xamarin iOS Build Host在我的Windows PC上使用Xamarin为iOS开发。我过去曾经发生过一些奇怪的事情,特别是在调试和断点方面。所以我要责怪Xamarin Build Host。

感谢@Amit和@DavidW帮助我得出这个结论。