如果需要集合中的元素何时删除或添加的信息,可以使用ObservableCollection<T>类。这个类是为WPF定义的,这样UI就可以得知集合的变化。这个类在程序集WindowsBase中定义,需要引用这个程序集。
ObservableCollection<T>类派生自Collection<T>基类,该基类可用于创建自定义集合,并在内部使用List<T>类。重写基类的虚方法SetItem()和RemoveItem(),以触发CollectionChanged事件。

    static void Main()
        {
          var data = new ObservableCollection<string>();
          data.CollectionChanged += Data_CollectionChanged;
          data.Add("One");
          data.Add("Two");
          data.Insert(1, "Three");
          data.Remove("One");

        }

        static void Data_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
          Console.WriteLine("action: {0}", e.Action.ToString());

          if (e.OldItems != null)
          {
            Console.WriteLine("starting index for old item(s): {0}", e.OldStartingIndex);
            Console.WriteLine("old item(s):");
            foreach (var item in e.OldItems)
            {
              Console.WriteLine(item);
            }
          }
          if (e.NewItems != null)
          {
            Console.WriteLine("starting index for new item(s): {0}", e.NewStartingIndex);
            Console.WriteLine("new item(s): ");
            foreach (var item in e.NewItems)
            {
              Console.WriteLine(item);
            }
          }

          Console.WriteLine();
        }

到此这篇关于C#集合之可观察集合的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。