C# 类库集合 ObservableCollectionT 与 CollectionT

swift

1个回答

写回答

15515217931

2025-07-02 10:35

+ 关注

移动
移动

C# 类库集合中的 ObservableCollection 与 Collection

C# 类库提供了许多集合类,其中包括 ObservableCollection 和 Collection。这两个类都是用于存储和操作一组对象的集合,但它们在一些方面有所不同。

ObservableCollection是一个动态集合,它实现了 INotifyCollectionChanged 接口和 INotifyPropertyChanged 接口。这意味着当集合发生变化时,它会发出事件通知订阅者。这使得 ObservableCollection 在需要实时更新 UI 或其他相关操作时非常有用。

Collection则是一个静态集合,不包含任何事件通知机制。它是 List 类的基类,并提供了一些额外的功能。Collection 主要用于存储和操作一组对象,但不需要实时更新 UI 或其他相关操作的场景。

ObservableCollection 的特性和用法

ObservableCollection是一个非常方便的集合类,特别适用于需要在 UI 中显示集合数据的场景。由于它实现了 INotifyCollectionChanged 接口,当集合中的对象发生添加、删除、移动或重置操作时,它会自动发出相应的事件通知。

下面是一个使用 ObservableCollection 的简单示例代码:

using System.Collections.ObjectModel;

// 创建一个存储整数的 ObservableCollection

ObservableCollection<int> numbers = new ObservableCollection<int>();

// 添加事件处理程序,当集合发生变化时进行处理

numbers.CollectionChanged += (sender, e) =>

{

if (e.Action == NotifyCollectionChangedAction.Add)

{

foreach (int number in e.NewItems)

{

// 在 UI 中显示新增的数字

Console.WriteLine("新增数字:" + number);

}

}

};

// 向集合中添加数字

numbers.Add(1);

numbers.Add(2);

numbers.Add(3);

在上面的示例中,我们创建了一个存储整数的 ObservableCollection,并添加了一个事件处理程序。当集合中新增数字时,事件处理程序会将新增的数字输出到控制台。

Collection 的特性和用法

Collection 是一个简单而实用的集合类,它提供了一些常用的集合操作方法,例如添加、删除和查询。与 ObservableCollection 不同,Collection 不会发出事件通知,因此在不需要实时更新 UI 的情况下,它是一个更轻量级的选择。

下面是一个使用 Collection 的简单示例代码:

using System.Collections.ObjectModel;

// 创建一个存储字符串的 Collection

Collection<string> names = new Collection<string>();

// 向集合中添加名字

names.Add("Alice");

names.Add("Bob");

names.Add("Charlie");

// 输出集合中的名字

foreach (string name in names)

{

Console.WriteLine("名字:" + name);

}

// 删除指定名字

names.Remove("Bob");

// 输出修改后的集合

foreach (string name in names)

{

Console.WriteLine("名字:" + name);

}

在上面的示例中,我们创建了一个存储字符串的 Collection,并向集合中添加了若干个名字。然后,我们通过遍历集合的方式输出了所有的名字。接着,我们删除了名为 "Bob" 的名字,并再次输出修改后的集合。

ObservableCollection 和 Collection 都是 C# 类库中常用的集合类,用于存储和操作一组对象。ObservableCollection 提供了事件通知机制,非常适用于需要实时更新 UI 或其他相关操作的场景。而 Collection 则更加轻量级,适用于不需要实时更新 UI 的情况。

根据实际需求,我们可以选择适合的集合类来存储和操作对象,以提高代码的可读性和性能。无论是使用 ObservableCollection 还是 Collection,它们都是非常有用的工具,能够帮助我们更好地处理集合数据。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号