Visual Studio 2010的Silverlight是否支持ArrayList?如果是,那麼如何使用它,如果不是那麼爲什麼?Silverlight和ArrayList
如何在Silverlight中使用ArrayList?
Visual Studio 2010的Silverlight是否支持ArrayList?如果是,那麼如何使用它,如果不是那麼爲什麼?Silverlight和ArrayList
如何在Silverlight中使用ArrayList?
Silverlight現在不支持ArrayList,請參閱 http://www.infoq.com/news/2007/07/ArrayList-Gone。
編輯: 下面是這個環節的內容,
減少Silverlight運行時的大小的努力,大多數非泛型集合類型將被移除。這些包括曾經被認爲對.NET編程至關重要的類型,包括ArrayList,Hashtable和Comparer。
根據微軟Base Class Library團隊的Inbar Gazit的說法,非泛型集合不會隨Silverlight 1.1一起發佈。這意味着雖然您可以繼續將它們用於主要的.NET發行版,但它們不能用於任何針對Silverlight的程序集。受影響的類別是:
* ArrayList
* BitArray
* CaseInsensitiveComparer
* CaseInsensitiveHashCodeProvider
* CollectionBase
* Comparer
* CompatibleComparer
* DictionaryBase
* EmptyReadOnlyDictionaryInternal
* Hashtable
* IHashCodeProvider
* KeyValuePairs
* ListDictionaryInternal
* Queue
* ReadOnlyCollectionBase
* SortedList
* Stack
只是要清楚,微軟而不是消除這些類或標記他們在這段時間的主要.NET分佈爲過時規劃。
爲了支持類型不一定已知的數據綁定等場景,以下非泛型接口將保留在Silverlight中。
* IEnumerator
* IEnumerable
* ICollection
* IComparer
* IDictionary
* IDictionaryEnumerator
* DictionaryEntry
* IEqualityComparer
* IList
某些泛型集合也從Silverlight中刪除。 Inbar解釋說,
另外三個通用類型也被刪除。 Queue,Stack和LinkedList從Silverlight中刪除。在這種情況下,並不是因爲它們是非泛型的,而是因爲它們不被認爲是我們認爲與Silverlight一起提供的核心類型的一部分。請記住,Silverlight是一個非常小的下載,並且應該只包含最小的一組API,可以進行有用的開發。使用List實現Queue和Stack非常簡單,LinkedList只是List的不同實現,具有不同的性能特徵,所以它不是我們核心集合組的重要組成部分。
也請檢查C# - Replacement for.NET ArrayList.ToArray(Type) in Silverlight。
一種替代是使用:
IList <object> list = new List <object>();