sti*_*k81 22 c# list observablecollection
我有一个ObservableCollection,我想将IList的内容设置为这个.现在我可以创建一个新的集合实例..:
public ObservableCollection<Bar> obs = new ObservableCollection<Bar>();
public void Foo(IList<Bar> list)
{
obs = new ObservableCollection<Bar>(list);
}
Run Code Online (Sandbox Code Playgroud)
但是,我怎样才能真正获取IList的内容并将其添加到我现有的ObservableCollection中?我是否必须遍历所有元素,还是有更好的方法?
public void Foo(IList<Bar> list)
{
foreach (var elm in list)
obs.Add(elm);
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*lph 53
你可以做到
public void Foo(IList<Bar> list)
{
list.ToList().ForEach(obs.Add);
}
Run Code Online (Sandbox Code Playgroud)
或作为延伸方法,
public static void AddRange<T>(this ObservableCollection<T> collection, IEnumerable<T> items)
{
items.ToList().ForEach(collection.Add);
}
Run Code Online (Sandbox Code Playgroud)
如果您使用C#3 +来帮助您,可以编写自己的扩展方法.此代码已进行了一些基本测试,以确保它的工作原理:
public static void AddRange<T>(this ObservableCollection<T> coll, IEnumerable<T> items)
{
foreach (var item in items)
{
coll.Add(item);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32363 次 |
最近记录: |