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?
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);
Juste besoin d'ajouter l'espace de noms using System.Linq;
et utilisez la méthode ToList()
dans l'objet ObservableCollection
É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);
Où T
est le type des éléments de la collection.
ObservableCollection
implémente IList<T>
, vous devriez donc pouvoir utiliser ToList()
dessus.
La propriété Items renvoie un IList. Voir http://msdn.Microsoft.com/en-us/library/ms132435.aspx
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