gpt4 book ai didi

c# - 将 IList 中的元素添加到 ObservableCollection

转载 作者:IT王子 更新时间:2023-10-29 04:28:43 27 4
gpt4 key购买 nike

我有一个 ObservableCollection,我想将 IList 的内容设置为这个。现在我可以创建一个新的集合实例..:

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);
}

最佳答案

But how can I actually take the content of the IList and add it to myexisting ObservableCollection? Do I have to loop over all elements, oris there a better way?

虽然可能有一些“更好”的方式涉及使用第三方依赖项、一些低级操作等。简单地循环遍历集合就可以了。我建议这样做。简而言之——不,实际上没有“更好”的方法。


这是该答案的旧版本,是对 LINQ 的误用(可能将集合迭代两次只是为了节省一两行代码)。我想完全删除答案,但我不能,因为它是公认的答案。

你可以做

public void Foo(IList<Bar> list) =>
list.ToList().ForEach(obs.Add);

或作为扩展方法,

public static void AddRange<T>(
this ObservableCollection<T> collection, IEnumerable<T> items) =>
items.ToList().ForEach(collection.Add);

关于c# - 将 IList 中的元素添加到 ObservableCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2184169/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com