这对我来说非常困惑.不知何故IndexOf(string),我的List<string>对象的方法返回-1,即使List中的值是CLEARLY.
protected readonly List<string> validPrefixes = new List<string>() { "01", "02", "03", "FE", "E1", "E2", "E3" };
Run Code Online (Sandbox Code Playgroud)
string prefix 是"01"

validPrefixes 索引0是"01".

indexOf是-1.嗯......怎么样?

好吧,我不知道为什么,但看起来我的调试器在骗我。validPrefixes我相信发生的事情是需要全部小写的值,因为我ToLower()之前在代码中使用了影响string addr变量的方法。
由于某种原因,我的调试器似乎以某种方式混合了循环的迭代。我只能通过char[]使用该string.ToCharArray()方法将变量分配给 a 来判断发生了这种情况。
("01").ToCharArray()正在返回['0','1']。
prefix.ToCharArra()正在返回['f','e']。
不知何故,调试器告诉我 is 的值prefix,而is"01"的值。后者是来自不同循环迭代的值。prefix.ToCharArray()['f','e']
由于我正在检查"FE"而不是"fe",所以我的代码无法正常工作,但我的调试器并没有准确地告诉我这一点。
我正在使用 Xamarin iOS Build Host 在我的 Windows PC 上使用 Xamarin 进行 iOS 开发。过去,通过这样的开发,我遇到过一些奇怪的事情,尤其是在调试和断点方面。所以我要责怪 Xamarin Build Host。
感谢@Amit 和@DavidW 帮助我得出这个结论。