2010-11-15 21 views
7

Silverlight di Visual Studio 2010 supporta ArrayList? Se sì, allora come usarlo, se no, allora perché?Silverlight e ArrayList

Come utilizzare ArrayList in Silverlight?

risposta

13

Silverlight non supporta ArrayList ora, vedere http://www.infoq.com/news/2007/07/ArrayList-Gone.

EDIT: Ecco il contenuto da questo link,

uno sforzo per ridurre le dimensioni del runtime di Silverlight, la maggior parte dei tipi di raccolta non generici verranno rimossi. Questi includono tipi una volta considerati essenziali per la programmazione .NET inclusi ArrayList, Hashtable e Comparer.

Secondo Inbar Gazit del team di Microsoft Base Class Library, le raccolte non generiche non verranno spedite con Silverlight 1.1. Ciò significa che, mentre è possibile continuare a utilizzarli con la distribuzione .NET principale, non possono essere utilizzati in alcun assembly che abbia come target Silverlight. Le classi interessate sono:

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

Giusto per chiarire, Microsoft non ha intenzione di rimuovere queste classi o la marcatura loro come obsoleti nella distribuzione .NET principale in questo momento.

Per supportare scenari come l'associazione dei dati in cui il tipo non è necessariamente noto, le seguenti interfacce non generiche verranno mantenute in Silverlight.

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

Alcune collezioni generiche sono state rilasciate da Silverlight. Inbar spiega,

Sono stati rimossi anche altri tre tipi generici. Queue, Stack e LinkedList sono stati rimossi da Silverlight. In questo caso non è stato perché non erano generici, ma perché non sono considerati parte del gruppo principale di tipi che ritenevamo essenziali per essere forniti con Silverlight. Ricorda che Silverlight è un download molto piccolo e dovrebbe includere solo il più piccolo set di API che consentirà uno sviluppo utile. È molto semplice implementare la coda e lo stack usando List e LinkedList è solo una diversa implementazione di List con caratteristiche di performance diverse e quindi non è una parte essenziale del nostro gruppo di raccolte di base.

Controllare anche C# - Replacement for.NET ArrayList.ToArray(Type) in Silverlight.

5

Un'alternativa sta usando:

IList <object> list = new List <object>();