将列表框项转换为数组整数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]);
}

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

.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();