如何将ArrayList转换为int
本文关键字:int 转换 ArrayList | 更新日期: 2023-09-27 18:19:13
我有一些非常简单的代码:
ArrayList array = new ArrayList();
int var1 = 10;
int var2;
array.Add(var1);
var2 = array[0];
和Visual Studio显示一个错误,如我所料:
不能隐式地将类型对象转换为int....
我知道我可以使用显式转换,像这样:
var2 = (int)array[0];
或
var2 = Convert.ToInt32(array[0]);
我在一些测试中发现了这个问题,不幸的是,没有提供这两个答案,他们标记为正确答案:
var2 = ((List<int>)array)[0];
我已经测试了这个解决方案,在vs中有另一个错误。
是我错过了什么,还是他们只是犯了一个错误,把答案标记为正确?
我尝试了((List<int>)array)
和VS抛出以下异常。
Compilation error (line 16, col 17): Cannot convert type 'System.Collections.ArrayList' to 'System.Collections.Generic.List<int>'
所以,我同意你标记的答案是不正确的。
还有,想知道是否有像
这样的大小写选项var2 = array.Cast<int>().First();
您的代码有错误…可以将"数组列表"项转换为"泛型列表",然后从该泛型集合中选择任何项。下面是正确的代码
var2= ((List<int>)array[0])[0];