我有一個ObservableCollection,並且我想將IList的內容設置爲這個元素。現在,我可以創建集合的新實例..:從IList添加元素到ObservableCollection
public ObservableCollection<Bar> obs = new ObservableCollection<Bar>();
public void Foo(IList<Bar> list)
{
obs = new ObservableCollection<Bar>(list);
}
但我怎麼能採取實際的IList的內容並把它添加到現有的ObservableCollection?我是否需要遍歷所有元素,還是有更好的方法?
public void Foo(IList<Bar> list)
{
foreach (var elm in list)
obs.Add(elm);
}
Thx!現在就開始使用ToList.ForEach方法。如果我需要這個不止一個地方,請考慮擴展方法。 – stiank81 2010-02-02 13:35:56
'Enumerable.ToList'擴展方法不必要地分配一個新的'List'。我可能會推薦RaYell的答案。 –
2010-02-02 13:58:35
@理查德 - 儘管在這種情況下,它會執行新列表(列表) - 內部調用((ICollection )列表).CopyTo(T [])在IList (例如列表)的大多數實現中調用本地(外部)數組複製功能。這應該是非常有效的,並且只涉及(至多)必要參考的原子副本,而不是迭代成員。 –
2010-02-02 18:15:30