首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

List还是ObservableCollection?

List和ObservableCollection都是常用的集合类,用于存储和操作一组数据。

List是C#中的一个泛型类,它实现了IList接口,提供了对元素的线性访问和操作。List是一个动态数组,它可以根据需要自动扩展和收缩。List适用于需要频繁进行插入、删除和索引操作的场景。在前端开发中,可以使用List来存储和操作数据,例如展示列表、筛选、排序等。

ObservableCollection是WPF和UWP中的一个特殊集合类,它继承自Collection<T>类,并实现了INotifyCollectionChanged和INotifyPropertyChanged接口。ObservableCollection具有List的所有功能,并且能够自动通知绑定到它的UI元素进行更新。当ObservableCollection中的元素发生变化时,它会触发CollectionChanged事件,通知UI进行相应的更新。ObservableCollection适用于需要实时反映数据变化的场景,例如数据绑定、UI更新等。

在选择List还是ObservableCollection时,需要根据具体的需求来决定。如果需要实时反映数据变化,并且使用的是WPF或UWP框架,建议使用ObservableCollection。如果只需要进行简单的数据操作,并且不需要实时更新UI,可以使用List。

腾讯云相关产品中,没有直接对应List和ObservableCollection的产品,但可以使用腾讯云提供的对象存储服务 COS(Cloud Object Storage)来存储和管理集合数据。COS是一种高可用、高可靠、低成本的云存储服务,适用于各种场景下的数据存储和访问需求。您可以通过腾讯云官网了解更多关于COS的信息:腾讯云对象存储 COS

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • WPF 解决 ObservableCollection 提示 Cannot change ObservableCollection during a CollectionChanged event 异

    本文告诉大家在使用 ObservableCollection 时,抛出 InvalidOperationException 异常,提示 Cannot change ObservableCollection...这个异常是 ObservableCollection 类型抛出的,而 ObservableCollection 类型是在 dotnet runtime 定义的,放在 System.ObjectModel...里,而且此异常可以在除 WPF 的其他框架,比如控制台或者 UWP 上复现 想要解决此问题,还请先了解一下此异常抛出的原因 在 ObservableCollection 的设计上,是可以了解列表的变更...这就让 ObservableCollection 存在一个设计上需要解决的问题,那就是如果事件 CollectionChanged 被加等两次,意味着有两次方法的调用。...要么就是继承 ObservableCollection 类型,重写 OnCollectionChanged 方法,不要修改 _blockReentrancyCount 字段。

    1.1K10

    win10 uwp 通知列表

    在 C# 很少直接使用数组,因为数组难以指定类型,需要指定类型的,一般都会使用 List 。而 List 我就叫他列表,继承 ICollection 的类,一般就可以叫列表。...但是在使用 ListView 直接给 List 作为 Source ,那么只会在初次显示,之后无论对 List 进行什么修改,都不会导致界面的列表项修改。...当然如果列表使用的类的属性有通知,对他进行修改,还是可以看到界面修改。 如果希望对列表修改时,界面也变化,那么简单方法是使用 ObservableCollection。...如果想问,为何使用 ObservableCollection 就可以通知界面修改了元素,而使用 List 就不可以。...如果对于上面的说法觉得还是不行,那么深一点,来解释一下 ListView 是如何知道 ObservableCollection 修改了。

    63120

    在 Python 中创建列表时,应该写 `[]` 还是 `list()`?

    在 Python 中,创建列表有两种写法:python 代码解读复制代码# 写法一:使用一对方括号list_1 = []# 写法二:调用 list()list_2 = list()那么哪种写法更好呢?...('[]', number=1000000)print(f"list()的耗时: {time_list} 秒")print(f"[]的耗时: {time_brackets} 秒")# list()的耗时...python 代码解读复制代码import dis # pip3 install disprint("Disassembly of create_list_with_list:")dis.dis('list...list() 可以接受一个(且只能是一个)可迭代对象作为参数,并将其转换为列表:python 代码解读复制代码# 从可迭代对象创建列表list_from_tuple = list((1, 2, 3))...# [1, 2, 3]list_from_string = list("hello") # ['h', 'e', 'l', 'l', 'o']list_from_dict_keys = list({"

    6310

    win10 uwp 通知列表

    在 C# 很少直接使用数组,因为数组难以指定类型,需要指定类型的,一般都会使用 List 。而 List 我就叫他列表,继承 ICollection 的类,一般就可以叫列表。...但是在使用 ListView 直接给 List 作为 Source ,那么只会在初次显示,之后无论对 List 进行什么修改,都不会导致界面的列表项修改。...当然如果列表使用的类的属性有通知,对他进行修改,还是可以看到界面修改。 如果希望对列表修改时,界面也变化,那么简单方法是使用 ObservableCollection。...如果想问,为何使用 ObservableCollection 就可以通知界面修改了元素,而使用 List 就不可以。...如果对于上面的说法觉得还是不行,那么深一点,来解释一下 ListView 是如何知道 ObservableCollection 修改了。

    64610

    WPF 多线程下跨线程处理 ObservableCollection 数据

    对象赋值给 list 变量,此时的后台线程退出对 ObservableCollection 对象的任何访问,也就是在此单一的时刻,只有后台线程一个线程在访问。...接下来进入 ListView.ItemsSource = list 也就是将 list 交给 UI 线程,在此单一的时刻,也只有 UI 线程,一个线程在访问 在将 ObservableCollection...只有在调用 ListView.ItemsSource = list 代码之后,才将 ObservableCollection 关联到 UI 线程。...在此代码执行之后,就不能通过后台线程去修改 list 变量对应的对象了,因为此时的修改将会间接在后台线程访问到 UI 元素 那如果期望是在后台线程处理原有 UI 线程关联的 ObservableCollection...= list; } var newList = await Task.Run(() => { var data = new ObservableCollection

    3.7K10

    WPF 已知问题 在 ObservableCollection 的 CollectionChanged 修改集合内容将让 UI 显示错误

    本文记录一个 WPF 已知问题,在 ObservableCollection 的 CollectionChanged 事件里面,绕过 ObservableCollection 的异常判断逻辑,强行修改集合内容...本文将告诉大家此问题的复现方法和修复方法 在 UI 绑定的 ObservableCollection 修改时,给此集合列表添加新的项目,此时 UI 绑定的数据是对的但是界面显示错误。...ToString() => Name; } 接着在 MainWindow 里添加一个 ObservableCollection 属性用于让 XAML 绑定,这里不加入一个 ViewModel...只是为了让代码简单 public ObservableCollection List { get; } = new ObservableCollection();...监听 Loaded 用来模拟删除 ObservableCollection 的内容,用来触发 CollectionChanged 事件 先不要实现 List_CollectionChanged 和 MainWindow_Loaded

    2.5K30

    win10 uwp 简单MasterDetail

    当然我们可以给我们VisualState名,从e.NewState拿到Name就很简单,我们使用Narrow,判断显示屏是小还是可以显示两个 我推荐是使用第一个,因为第二个我们必须修改前台就修改ViewModel...修改显示 我们先判断我们现在屏幕,显示两个还是显示List一个,如果是显示两个,那么我们不需要什么,当然我们需要给默认。...那么我们在界面变化的是否,是否知道我们显示内容还是显示列表,这时就是我们得HasFrame,依靠这个选择ZIndex 修改我代码 现在需要说下,如何修改我的代码,作为你需要。...一般可以自己写一个,不过通过修改我的代码会让你更加理解 首先我们需要Model,这是你自己定义的,随便写 然后打开ViewModel,我们里面关键的有ObservableCollection的,这是列表...我首先新建 Model,放下随意的类,作为显示的内容,然后在ViewModel使用ObservableCollection,当然给他的也是随意的 在界面我们需要Grid,这时我绑定了GridLength

    41020

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券