我的 ArrayList 去哪了?Metro 应用程序

6
在我使用Visual Studio 11 Express Beta编写的Windows 8应用中,我不能使用ArrayList。以下是我的代码:
using System.Collections;


ArrayList al = new ArrayList();

编译错误:

无法找到类型或命名空间名为 "ArrayList" (是否缺少 using 指令或程序集引用?)

这是新的问题吗?我喜欢 ArrayLists :)


4
.NET Framework类库包含了许多位于System.Collections.Generic命名空间的新泛型集合类。应尽可能使用这些类来代替System.Collections命名空间中的ArrayList等类。 - Styxxy
你的代码如果不使用ArrayList会更好。 - JP Alioto
5个回答

13

对于WinRT,他们移除了所有非泛型集合——这样做可以使代码更快、更可靠。请使用List<T>代替。

顺便说一下...在迁移到WinRT时,你不会第一次问自己,“他们为什么要拿走那个API?”


1

明天再+1,因为我已经达到了每日投票上限!明天在这篇帖子里提醒我 :) - Mathew Thompson

1

0

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

看一下这里:

{{link1:List<Object>是否是ArrayList的良好替代品?}}

您还可以在这里了解更多:

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


0

你不能在WinRT应用程序中使用 ArrayList,需要使用 List


System.Collections命名空间中,ArrayList不适用于MetroStyle应用程序。 - Tigran
@Tigran请再次检查我的答案 :) - Mathew Thompson
你在哪个命名空间找到了ArrayList?我同意Tigran的看法,在我的环境中也没有找到。 - Quark Soup
@DRAirey1,正如我的回答所述,你不能在WinRT应用程序中使用ArrayList。你必须使用List - Mathew Thompson
抱歉,我现在明白你的意思了。不过我会修改你的回复,使用泛型 List<Object> 进行引用。 'List' 是一种不同的类型。 - Quark Soup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接