List<string> 对象 IndexOf 返回 -1。如何?
List<string> object IndexOf returning -1. How?
这让我很莫名其妙。我的 List<string>
对象的 IndexOf(string)
方法以某种方式返回 -1,即使列表中的值很清楚。
protected readonly List<string> validPrefixes = new List<string>() { "01", "02", "03", "FE", "E1", "E2", "E3" };
string prefix
是“01”
validPrefixes
索引 0 为“01”。
indexOf
为 -1。嗯...怎么样?
嗯,我不确定为什么,但看起来我的调试器在骗我。我相信发生的事情是 validPrefixes
中的值需要全部小写,因为我之前在我的代码中使用 ToLower()
方法影响了 string addr
变量。
出于某种原因,我的调试器似乎以某种方式混合了循环的迭代。我只能通过使用 string.ToCharArray()
方法将变量分配给 char[]
来判断这是发生了什么。
("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 帮助我得出这个结论。
这让我很莫名其妙。我的 List<string>
对象的 IndexOf(string)
方法以某种方式返回 -1,即使列表中的值很清楚。
protected readonly List<string> validPrefixes = new List<string>() { "01", "02", "03", "FE", "E1", "E2", "E3" };
string prefix
是“01”
validPrefixes
索引 0 为“01”。
indexOf
为 -1。嗯...怎么样?
嗯,我不确定为什么,但看起来我的调试器在骗我。我相信发生的事情是 validPrefixes
中的值需要全部小写,因为我之前在我的代码中使用 ToLower()
方法影响了 string addr
变量。
出于某种原因,我的调试器似乎以某种方式混合了循环的迭代。我只能通过使用 string.ToCharArray()
方法将变量分配给 char[]
来判断这是发生了什么。
("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 帮助我得出这个结论。