Tengo un ObservableCollection, y me gustaría establecer el contenido de un IList a este. Ahora sólo podía crear una nueva instancia de la colección ..:Agregar elementos de IList a ObservableCollection
public ObservableCollection<Bar> obs = new ObservableCollection<Bar>();
public void Foo(IList<Bar> list)
{
obs = new ObservableCollection<Bar>(list);
}
Pero cómo puedo tomar realmente el contenido de la IList y añadirlo a mi ObservableCollection existente? ¿Tengo que recorrer todos los elementos, o hay una mejor manera?
public void Foo(IList<Bar> list)
{
foreach (var elm in list)
obs.Add(elm);
}
¡Thx! Fui con el enfoque ToList.ForEach por ahora. Considere el método de extensión si necesito más de un lugar. – stiank81
El método de extensión 'Enumerable.ToList' asigna innecesariamente una nueva' Lista '. Probablemente recomendaría la respuesta de RaYell. –
@Richard - que es cierto aunque bajo el capó esta nueva lista hace (lista) - que llama internamente (lista (ICollection )) .CopyTo (T []) que en la mayoría de las implementaciones de IList (por ejemplo, lista de llamadas ) una función de copia de matriz nativa (externa). esto debería ser bastante eficiente y solo implicaría (como máximo) una copia atómica de las referencias necesarias en lugar de la iteración de los miembros. –