📌  相关文章
📜  如何将列表转换为 observablecollection c# (1)

📅  最后修改于: 2023-12-03 15:24:44.421000             🧑  作者: Mango

如何将列表转换为 ObservableCollection

在 C# 中,如果你需要在数据变更时通知 View 层,那么可以使用 ObservableCollection 类型来代替普通的 List。

ObservableCollection 继承自 Collection 类,并实现了 INotifyCollectionChanged、INotifyPropertyChanged 接口,当集合中的项发生变化时,它会向 UI 层通知。

以下我们来看一下如何将 List 类型转换为 ObservableCollection。

第一种方法:使用构造函数
List<string> list = new List<string>() { "A", "B", "C" };
ObservableCollection<string> collection = new ObservableCollection<string>(list);

可见,我们只需要将 List 作为参数传递给 ObservableCollection 的构造函数即可。

第二种方法:使用 AddRange 扩展方法

ObservableCollection 并没有提供一个 AddRange 方法,但我们可以自己实现它:

public static class ObservableCollectionExtensions
{
    public static void AddRange<T>(this ObservableCollection<T> collection, IEnumerable<T> items)
    {
        foreach (var item in items)
        {
            collection.Add(item);
        }
    }
}

然后使用 AddRange 方法:

List<string> list = new List<string>() { "A", "B", "C" };
ObservableCollection<string> collection = new ObservableCollection<string>();
collection.AddRange(list);
总结

以上两种方法都可以将 List 类型转换为 ObservableCollection,建议使用第一种方法,代码比较简洁。