我有一个在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作为参数的构造函数,所以我不能简单地使用new来创建一个。是否有一个更像选项1的替代方案我错过了,还是我在这里太挑剔了,选项2确实是一个合理的选择。
另外,如果选项2是唯一的真正选择,那么如果我只是迭代返回值并将其添加到某种其他集合中,是否有理由使用IList而不是IEnurerable?
提前致谢。