将阵列的替代元素放入组合框中

时间:2013-12-09 12:09:59

标签: c# arrays loops foreach

我在数组中有一定数量的元素(statsname)。

它们实际上如下

x[1] A_NAME
x[2] A_CATEGORY
x[3] ANOTHER_NAME
x[4] A_CATEGORY

我想要组合框中的类别。 我做了

 int up =1; 
            foreach (string things in statsname)
            { 
                //if the stat name doesnot contains TIME
                //Only then we add it to the combobox.
                if ((Convert.ToString(things[up]) == "CurrentNumber") || (Convert.ToString(things[up]) == "TotalNumber"))
                {
                    tcomboBox1.Items.Add(things[up-1]);
                }
                up++;

                if (up != statsname.Count())
                {
                    tcomboBox1.Items.Add(things[up - 1]);
                }
            }

但是我收到错误

Array out of bound

为什么会这样? 我哪里出错了?

2 个答案:

答案 0 :(得分:2)

问题:您要将characterString合并,它永远不会成为true

解决方案:如果您只想在Categories的{​​{1}}位置添加所有array,例如1,3,5..etc。,

您可以从odd获取奇数值,并将值指定给array

编辑:如果你想要,你可以从数组中取出偶数值,并将值赋给combobox

试试这个:

combobox

答案 1 :(得分:1)

发生了IndexOutOfRangeException。这种情况发生在使用数组类型的C#程序中。当语句尝试访问索引大于最大允许索引的元素时,通常会发生此异常。

for (int i = 0; i < type.Length; i++)
{
    form.comboBox1.Items.Add(type[i]);
}