这对我来说非常困惑。不知何故,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;
validPrefixes
索引0是&#34; 01&#34;。
indexOf
为-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帮助我得出这个结论。