在使用Visual Studio 11 Express Beta编写的Windows 8应用程序中,我无法使用ArrayList。这是我的代码:
using System.Collections;
ArrayList al = new ArrayList();
编译错误:
这是新事物吗?我喜欢ArrayLists:)找不到类型或命名空间名称'ArrayList'(您是否缺少using指令或程序集引用?)
答案 0 :(得分:13)
对于WinRT,他们取出了所有非通用集合 - 它更快,并使您的代码更可靠。使用列表< T>代替。
ps ...这不是你最后一次说“为什么他们拿走那个API?”迁移到WinRT时
答案 1 :(得分:1)
修改强>
考虑到ArrayList的文档,它可用到4.0版本。 检查.NET Framework的项目版本。考虑到你正在为Metro写作,它必须是4.5(至少)。
更多细节可以在这篇文章中看到:
How to use ArrayList class in metro style class library project?
Metro风格应用程序的System.Collections命名空间缺少<{1}}类型的。
答案 2 :(得分:1)
Array 4.5在.NET 4.5中不适用于metro风格的应用程序。使用List的通用版本,如果需要对象列表,请使用List<object>
。
对于.NET for metro style apps API参考,请看这里: http://msdn.microsoft.com/en-us/library/windows/apps/hh454064%28v=vs.110%29.aspx
答案 3 :(得分:0)
您无法在WinRT应用中使用ArrayList
,您必须使用List
。
答案 4 :(得分:0)
这取决于您使用的.NET Framework版本。 .Net 4.5.1不支持ArrayList。您应该使用List的通用形式List<T>
而不是ArrayList
作为集合类型。
看看这里:
Is List<Object> a good replacement for ArrayList?
您可以在这里了解更多信息: