可觀察的集合 特殊的集合一種

2021-10-01 10:03:54 字數 1799 閱讀 1059

如果需要集合中的元素何時刪除或新增的資訊,就可以使用observablecollection類。這個類最初是為wpf定義的,這樣ui就可以得知集合的變化,通用windows應用程式使用它的方式相同。這個類的命名空間是system.collections.objectmodel。

observablecollection類派生自collection基類,該基類可用於建立自定義集合,並在內部使用list類。重寫基類中的虛方法setitem()和remove(),以觸發collectionchanged事件。這個類的使用者可以使用inotifycollectionchanged介面註冊這個事件。

observablecollectionsample使用如下命名空間:

system

system.collections.objectmodel

system.collections.specialized

下面的示例說明了observablecollection()方法的用法,其中給collectionchanged事件註冊了data_collectionchanged()方法。把兩項新增到末尾,再插入一項,並刪除一項:

var data = new observablecollection();

data.collectionchanged += data_collectionchanged;

data.add("one");

data.add("two");

data.insert(1,"three");

data.remove("one");

data_collectionchanged()方法接收notifycollectioonchangedeventargs(),其中包含了集合的變化資訊。action屬性給出了是否新增或刪除一項的資訊。對於刪除的項,會設定olditems屬性,列出刪除的項。對於新增的項,則設定newitems屬性,列出新增的項。

static void data_collectionchanged(object sender,notifycollectionchangedeventargs e)");

if(e.olditems != null)");

system.console.writeline("old items(s)");

foreach(var item in e.olditems)

}if(e.newitems != null)");

system.console.writeline("new item(s)");

foreach(var item in e.newitems)

}

執行應用程式,輸出如下所示。先在集合中新增one和two項,顯示的add動作的索引是0和1.第3項three插入在位置1上,所以顯示的add動作的索引是1。最後刪除one項,顯示的remove動作的索引是0:

action: add

starting index for new item(s): 0

new item(s)

oneaction: add

starting index for new item(s): 1

new item(s)

twoaction: add

starting index for new item(s): 1

new item(s)

three

action: remove

starting index for old item(s): 0

old items(s)

one

C 集合之可觀察的集合

如果需要集合中的元素何時刪除或新增的資訊,可以使用observablecollection類。這個類是為wpf定義的,這樣ui就可以得知集合的變化。這個類在程式集windowsbase中定義,需要引用這個程式集。observablecollection類派生自collection基類,該基類可用於建...

最近碰到的面試 集合(一)

1 collection和collections collection是乙個介面,它提供了集合類的通用方法如size isempty toarray add e 之類的方法 collections是乙個集合包裝類,提供了一系列有關聚合的靜態 static 方法,此方法不能new 因為構造方法是pri...

一些特殊的集合

1.stack集合 棧 stack,先進後出,乙個乙個賦值,乙個乙個取值,按順序。屬性和方法 count 取集合內元素的個數 push 將元素乙個乙個推入集合中 pop 將元素乙個乙個彈出集合 clear 清空集合 2.queue 佇列集合 先進先出,乙個乙個的賦值,乙個乙個的取值,按照順序。屬性和...