web-dev-qa-db-fra.com

Conversion de la collection observable en collection régulière

Une fonction a un paramètre de type objet. Je l'ai débogué pour voir quel type de type de données l'autre partie du programme m'a envoyé. La base était d'une ObservableCollection. Comment convertir cela en liste?

44
Shawn Mclean

Selon le type d'objet dans le ObservableCollection... je suppose que c'est un int pour cet exemple:

IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection();
var list = new List<int>(obsCollection);
55
Matthew Scharley

Juste besoin d'ajouter l'espace de noms using System.Linq;

et utilisez la méthode ToList() dans l'objet ObservableCollection

64
Jaider

Étant donné que ObservableCollection<T> met en oeuvre IEnumerable<T> vous pouvez le donner au constructeur de List<T>:

List<T> myList = new List<T>(myObservableCollection);

T est le type des éléments de la collection.

19
GraemeF

ObservableCollection implémente IList<T>, vous devriez donc pouvoir utiliser ToList() dessus.

http://msdn.Microsoft.com/en-us/library/bb342261.aspx

4
Robert Harvey

La propriété Items renvoie un IList. Voir http://msdn.Microsoft.com/en-us/library/ms132435.aspx

2
LJM

Je pense que le problème ici est que ObservableCollection peut être modifié à la volée lorsque vous essayez de le convertir en liste ou de l'utiliser en tant que tel, vous devrez donc peut-être utiliser un minuteur de surveillance jusqu'à ce que ObservableCollection se termine

0
Ion Todirel