我有一些非常简单的代码:
hashCode
和Visual Studio显示错误,正如我所料:
无法将类型对象隐式转换为int ....
我知道我可以使用显式转换,如下所示:
ArrayList array = new ArrayList();
int var1 = 10;
int var2;
array.Add(var1);
var2 = array[0];
或
var2 = (int)array[0];
我在一些测验中发现了这个问题,不幸的是,没有提供这两个答案,并且作为正确答案他们已经标记:
var2 = Convert.ToInt32(array[0]);
我已经测试了这个解决方案,VS中还有另一个错误。
我错过了什么,或者他们只是错误地将答案标记为正确?
答案 0 :(得分:-1)
我尝试((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();
答案 1 :(得分:-1)
您的代码有错误... 您可以将Array List项目转换为Generic List,然后可以从该Generic Collection中选择任何项目。 这是正确的代码
var2= ((List<int>)array[0])[0];