Silverlight和ArrayList

Jee*_*att 7 c# asp.net silverlight-3.0

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

如何在Silverlight中使用ArrayList?

Sin*_*ton 13

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

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

为了减少Silverlight运行时的大小,将删除大多数非泛型集合类型.这些包括曾被认为是.NET编程必不可少的类型,包括ArrayList,Hashtable和Comparer.

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

* ArrayList
* BitArray
* CaseInsensitiveComparer
* CaseInsensitiveHashCodeProvider
* CollectionBase
* Comparer
* CompatibleComparer
* DictionaryBase
* EmptyReadOnlyDictionaryInternal
* Hashtable
* IHashCodeProvider
* KeyValuePairs
* ListDictionaryInternal
* Queue
* ReadOnlyCollectionBase
* SortedList
* Stack
Run Code Online (Sandbox Code Playgroud)

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

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

* IEnumerator
* IEnumerable
* ICollection
* IComparer
* IDictionary
* IDictionaryEnumerator
* DictionaryEntry
* IEqualityComparer
* IList
Run Code Online (Sandbox Code Playgroud)

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

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

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


Mak*_*ect 5

另一种方法是使用:

IList <object> list = new List <object>();
Run Code Online (Sandbox Code Playgroud)