У меня есть метод в приложении 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, если все, что я когда-либо действительно собираюсь делать с ним, это итерация возвращаемого значения и добавление его в какой-либо другой вид коллекции?
Заранее спасибо