Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将列表框项转换为数组整数C#_C#_Asp.net_Arrays_Arraylist_Int - Fatal编程技术网

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

将列表框项转换为数组整数C#,c#,asp.net,arrays,arraylist,int,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]); } int[]ratingArray=新的int[numberRatingsInt]; 对于(int i=0;i

向列表框的项数组添加整数时遇到问题。似乎无法将列表框转换为整数

int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < numberRatingsInt; i++)
{
    ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i]);
}
int[]ratingArray=新的int[numberRatingsInt];
对于(int i=0;i
.ToString()
添加到
评级列表框。项目[i]

应该是:

int[] ratingArray = new int[numberRatingsInt];
for (int i = 0; i < ratingListBox.Items.Count; i++)
{
    ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i].ToString());
}
(该测试添加到@Chris answer中。)

编辑:


将分级列表框.Items.Count
放入for循环条件。

列表框
包含
列表项
,而不是直接包含值。试试这个:

 int[] ratingArray = new int[numberRatingsInt];
    for (int i = 0; i < numberRatingsInt; i++)
    {
        ratingArray[i] = Convert.ToInt32(ratingListBox.Items[i].Value);
    }
int[]ratingArray=新的int[numberRatingsInt];
对于(int i=0;i
为了补充其他答案,你还可以做一个性感的lambda,比如:

int[] ratingArray = ratingListBox.Items.OfType<ListItem>()
                                 .Select(x => int.Parse(x.Value))
                                 .ToArray();
int[]ratingArray=ratingListBox.Items.OfType()类型
.Select(x=>int.Parse(x.Value))
.ToArray();
这将消除所有循环计数、常量等。

请尝试此方法

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

谢谢,我想这已经解决了。但是我现在有另一个错误“ArgumentOutOfRangeException由用户代码处理”不确定这与现在有什么关系..它与索引相关。数组中的索引在某个地方出错。For循环索引出错了。你能把调试器放在这段代码上吗?@AnthonyJohnson
ratingListBox.Items
不包含
numberRatingsInt
元素,因此
ArgumentOutOfRangeException
@AnthonyJohnson在中进行编辑“ratingListBox.Items.Count”loop@AnthonyJohnson永远欢迎你。
var modarray = ratingListBox.Items.Cast<String>().ToArray();
int[] arr = modarray.Select(int.Parse).ToArray();