Silverlight和ArrayList

Visual Studio 2010的Silverlight是否支持ArrayList? 如果是,那么如何使用它,如果没有那么为什么?

如何在Silverlight中使用ArrayList?

Silverlight现在不支持ArrayList,请参阅http://www.infoq.com/news/2007/07/ArrayList-Gone 。

编辑:以下是此链接的内容,

为了减少Silverlight运行时的大小,将删除大多数非generics集合类型。 这些包括曾被认为对.NET编程至关重要的类型,包括ArrayList,Hashtable和Comparer。

根据微软基类库团队的Inbar Gazit的说法,非generics集合不会随Silverlight 1.1一起提供。 这意味着虽然您可以继续将它们与主.NET发行版一起使用,但它们不能用于任何针对Silverlight的程序集。 受影响的类是:

* ArrayList * BitArray * CaseInsensitiveComparer * CaseInsensitiveHashCodeProvider * CollectionBase * Comparer * CompatibleComparer * DictionaryBase * EmptyReadOnlyDictionaryInternal * Hashtable * IHashCodeProvider * KeyValuePairs * ListDictionaryInternal * Queue * ReadOnlyCollectionBase * SortedList * Stack 

为了说清楚,Microsoft目前还没有计划在主.NET发行版中删除这些类或将它们标记为过时。

为了支持不必知道类型的数据绑定等场景,Silverlight中将保留以下非generics接口。

 * IEnumerator * IEnumerable * ICollection * IComparer * IDictionary * IDictionaryEnumerator * DictionaryEntry * IEqualityComparer * IList 

一些通用集合也已从Silverlight中删除。 Inbar解释说,

还删除了其他三种通用类型。 从Silverlight中删除了Queue,Stack和LinkedList。 在这种情况下,它不是因为它们是非generics的,而是因为它们不被认为是我们认为必须提供Silverlight的核心类型集的一部分。 请记住,Silverlight是一个非常小的下载,应该只包含最小的API集,以便进行有用的开发。 使用List实现Queue和Stack非常简单,LinkedList只是具有不同性能特征的List的不同实现,因此它不是我们的核心集合组的重要部分。

还要在Silverlight中检查C# – 替换.NET ArrayList.ToArray(Type) 。

另一种方法是使用:

 IList  list = new List ();