将列表框项转换为数组整数C#
本文关键字:数组 整数 转换 列表 | 更新日期: 2023-09-27 18:14:56
在向列表框的项数组添加整数时遇到问题。似乎无法将列表框转换为整数。
int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < numberRatingsInt; i++)
{
ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i]);
}
将.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());
}
刚刚测试:
在ratingListBox.Items[i]
之后的.value
也可以工作。
它也可以像以下一样工作:
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
放入循环条件。
ListBoxes
包含ListItems
,而不是直接包含值。试试这个:
int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < numberRatingsInt; i++)
{
ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i].Value);
}
为了添加其他答案,您还可以做一个性感的lambda,比如:
int[] ratingArray = ratingListBox.Items.OfType<ListItem>()
.Select(x => int.Parse(x.Value))
.ToArray();
这应该去掉所有循环计数、常量等。
请尝试此
var modarray = ratingListBox.Items.Cast<String>().ToArray();
int[] arr = modarray.Select(int.Parse).ToArray();