我在目前返回一個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