var myObservableCollection = new ObservableCollection(myIEnumerable);
Cela fera une copie superficielle de l’actuel IEnumerable et le transformera en ObservableCollection.
Si vous travaillez avec IEnumerable non générique, vous pouvez le faire de la manière suivante:
public ObservableCollection
Si vous travaillez avec IEnumerable générique IEnumerable vous pouvez le faire de cette façon:
public ObservableCollection Convert(IEnumerable original) { return new ObservableCollection(original); }
Si vous travaillez avec un IEnumerable non générique mais que vous connaissez le type d’éléments, vous pouvez le faire de cette manière:
public ObservableCollection Convert(IEnumerable original) { return new ObservableCollection(original.Cast()); }
Pour rendre les choses encore plus simples, vous pouvez créer une méthode d’ extension .
public static class Extensions { public static ObservableCollection ToObservableCollection(this IEnumerable col) { return new ObservableCollection(col); } }
Ensuite, vous pouvez appeler la méthode sur chaque IEnumerable