6

在我使用 Visual Studio 11 Express Beta 编写的 Windows 8 应用程序中,我无法使用 ArrayList。这是我的代码:

using System.Collections;


ArrayList al = new ArrayList();

编译器错误:

找不到类型或命名空间名称“ArrayList”(您是否缺少 using 指令或程序集引用?)

这是新事物吗?我喜欢 ArrayLists :)

4

5 回答 5

13

对于 WinRT,他们去掉了所有的非泛型集合——它更快并且让你的代码更可靠。请改用 List<T>。

ps...这不会是你最后一次说“他们为什么要拿走那个 API?” 在迁移到 WinRT 时

于 2012-05-29T21:01:33.460 回答
1

编辑

考虑到ArrayList的文档,它直到 4.0 版本才可用。检查 .NET Framework 的项目版本。考虑到您正在为 Metro 写作,它必须是 4.5(至少)。

更多细节可以在这篇文章中看到:

如何在 Metro 风格类库项目中使用 ArrayList 类?

Metro Style 应用程序的 System.Collections 命名空间缺少类型ArrayList

于 2012-05-29T20:58:23.907 回答
1

ArrayList 在 Metro 风格应用程序的 .NET 4.5 中不可用。使用 List 的通用版本,如果您需要对象列表,请使用List<object>.

有关 Metro 风格应用程序 API 参考的 .NET,请查看此处:http: //msdn.microsoft.com/en-us/library/windows/apps/hh454064%28v=vs.110%29.aspx

于 2012-05-29T21:01:36.753 回答
0

您不能ArrayList在 WinRT 应用程序中使用 ,您必须使用List.

于 2012-05-29T21:00:19.997 回答
0

这取决于您使用的 .NET Framework 版本。.Net 4.5.1 不支持 ArrayList。您应该使用 List 的通用形式,List<T> 而不是ArrayList作为集合类型。

看看这里:

List<Object> 是 ArrayList 的一个很好的替代品吗?

您可以在这里了解更多信息:

https://msdn.microsoft.com/en-us/library/41107z8a.aspx

于 2016-04-26T15:15:08.450 回答