【发布时间】:2009-04-08 20:13:30
【问题描述】:
我在 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 而不是 IEnuerable,如果我真正要做的只是遍历返回值并将其添加到其他类型收藏?
提前致谢
【问题讨论】:
-
silverlight 4 的更新:ObservableCollection 现在有一个将 IList 或 IEnumerable 作为参数的构造函数
标签: c# silverlight