tengo un método en una aplicación de Silverlight que actualmente devuelve un IList y me gustaría encontrar la manera más limpia de convertir esto en una manera ObservableCollection:IList <T> a ObservableCollection <T>
public IList<SomeType> GetIlist()
{
//Process some stuff and return an IList<SomeType>;
}
public void ConsumeIlist()
{
//SomeCollection is defined in the class as an ObservableCollection
//Option 1
//Doesn't work - SomeCollection is NULL
SomeCollection = GetIlist() as ObservableCollection
//Option 2
//Works, but feels less clean than a variation of the above
IList<SomeType> myList = GetIlist
foreach (SomeType currentItem in myList)
{
SomeCollection.Add(currentEntry);
}
}
ObservableCollection no tiene un constructor que tomará un IList o IEnumerable como parámetro, así que no puedo crear uno nuevo. ¿Hay una alternativa que se parece más a la opción 1 que me falta, o estoy siendo demasiado selectivo aquí y la opción 2 realmente es una opción razonable.
Además, si la opción 2 es la única opción real, ¿hay alguna razón para usar un IList sobre un IEnurerable si todo lo que realmente voy a hacer con él es iterar sobre el valor de retorno y agregarlo a algún otro tipo de colección?
Gracias de antemano
actualización para Silverlight 4: ObservableCollection hace ahora tiene un constructor que t ake un IList o IEnumerable como un parámetro –