我在目前返回一个IList,我想找个变成一个ObservableCollection所以这个最干净的方式Silverlight应用程序的方法:的IList <T>到的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没有一个将以IList或IEnumerable作为参数的构造函数,所以我不能简单地将其添加到一个参数中。有没有其他选择看起来更像选项1,我错过了,还是我太挑剔了,选项2确实是一个合理的选择。
另外,如果选项2是唯一的实际选项,是否有理由在IEnurerable上使用IList,如果我真的要处理这个问题就是迭代返回值并将其添加到其他值那种收藏?
在此先感谢
的Silverlight 4更新:DOES的ObservableCollection现在有一个构造函数,将牛逼以IList或IEnumerable作为参数 – 2010-11-01 00:36:17