Comment convertir IEnumerable
à ObservableCollection
?
Réponses
Trop de publicités?Conformément à la MSDN
var myObservableCollection = new ObservableCollection(myIEnumerable);
Cela fera une copie superficielle de l'IEnumerable actuel et le transformera en ObservableCollection.
1) Si vous travaillez avec des produits non génériques. IEnumerable
vous pouvez le faire de cette façon :
public ObservableCollection<object> Convert(IEnumerable original)
{
return new ObservableCollection<object>(original.Cast<object>());
}
2) Si vous travaillez avec des produits génériques IEnumerable<T>
vous pouvez le faire de cette façon :
public ObservableCollection<T> Convert<T>(IEnumerable<T> original)
{
return new ObservableCollection<T>(original);
}
3) Si vous travaillez avec des produits non génériques. IEnumerable
mais connaître le type d'éléments, vous pouvez le faire de cette façon :
public ObservableCollection<T> Convert<T>(IEnumerable original)
{
return new ObservableCollection<T>(original.Cast<T>());
}
Pour rendre les choses encore plus simples, vous pouvez créer un fichier Extension de cette méthode.
public static class Extensions
{
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> col)
{
return new ObservableCollection<T>(col);
}
}
Ensuite, vous pouvez appeler la méthode sur chaque IEnumerable
var lst = new List<object>().ToObservableCollection();