0
string cstring = e.Result;
            string[] delim = {"<br>","*"};
            string[] cstringl = cstring.Split(delim, StringSplitOptions.None);
            for (int i = 0; i < cstringl.Length; i++)
            {
                country_picker.Items.Add(cstringl[i]);
            }

我正在使用上述代码在名为国家选择器的列表框中添加项目,但我得到 indexoutofrange 异常。为什么当我使用 i<=cstring1.Length 检查长度时出现此错误

4

1 回答 1

2

我发现您的代码有 2 个问题。

更新如下:

for (int i = 0; i < cstringl.Length; i++) 
{ 
    country_picker.Items.Add(cstringl[i]); 
} 

2个变化是:

  1. for 循环中的比较是“小于”长度,而不是“小于或等于”,因为这将触发 oe 错误,因为 Length 是计数但数组索引为零。这是您的 IndexOutOfRangeException 的原因。

  2. 添加项目时使用循环变量作为索引引用。因此,您不会多次添加相同的(第一个)项目。

更新
再次查看您的代码后,另一个可能的问题可能是由e.result. 尝试使用StringSplitOptions.RemoveEmptyEntries,这样您就不会冒险尝试输入空值。还要添加一张cstringl至少包含一项的支票。

于 2011-10-07T10:45:32.597 回答