无法将整数添加到列表框的项数组中。似乎无法将列表框转换为整数。
int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < numberRatingsInt; i++)
{
ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i]);
}
答案 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();