У меня есть метод в приложении Silverlight, который в настоящее время возвращает IList, и я бы хотел найти самый чистый способ превратить его в ObservableCollection, чтобы:
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 не имеет конструктора, который будет использовать IList или IEnumerable в качестве параметра, поэтому я не могу просто создать новый. Есть ли альтернатива, которая больше похожа на вариант 1, который мне не хватает, или я просто слишком придирчив, а вариант 2 действительно разумный вариант.
Кроме того, если опция 2 является единственной реальной опцией, есть ли причина использовать IList над IEnurerable, если все, что я когда-либо собираюсь делать с ней, перебирает возвращаемое значение и добавляет его в какой-то другой вид коллекции?
Заранее спасибо