将列表框项转换为数组整数C#

时间:2013-05-23 12:23:38

标签: c# asp.net arrays arraylist int

无法将整数添加到列表框的项数组中。似乎无法将列表框转换为整数。

int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < numberRatingsInt; i++)
{
    ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i]);
}

4 个答案:

答案 0 :(得分:2)

.ToString()添加到ratingListBox.Items[i]

应该是:

int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < ratingListBox.Items.Count; i++)
{
    ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i].ToString());
}

刚刚测试过:

<{1}} .value之后

ratingListBox.Items[i]也能正常工作。

它也可以如下工作:

int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < ratingListBox.Items.Count; i++)
{
    ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i].Value);
}

(这是在参考@Chris答案时添加了测试的。)

修改

ratingListBox.Items.Count置于for循环条件中。

答案 1 :(得分:2)

ListBoxes包含ListItems,而不是直接值。试试这个:

 int[] ratingArray = new int[numberRatingsInt];
    for (int i = 0; i < numberRatingsInt; i++)
    {
        ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i].Value);
    }

答案 2 :(得分:2)

只是为了增加其他答案,你也可以做一个性感的lambda:

int[] ratingArray = ratingListBox.Items.OfType<ListItem>()
                                 .Select(x => int.Parse(x.Value))
                                 .ToArray();

这应该摆脱所有循环计数,等等。

答案 3 :(得分:1)

请试试这个

var modarray = ratingListBox.Items.Cast<String>().ToArray();
int[] arr = modarray.Select(int.Parse).ToArray();