C 學習記錄(27)泛型(2)

2021-08-21 05:08:48 字數 1749 閱讀 1814

system.collections.generics命名空間

list和 dictionary兩種型別。

1. list

list泛型集合型別更加快捷、更易於使用;這樣,就不必像上一章那樣,從collectionbase中派生乙個類,然後實現需要的方法。

listmycollection = new list();

然後mycollection就可以呼叫以下的方法,非常簡便。

int count                                             該屬性給出集合中項的個數

void add(t item)                                 把乙個項新增到集合中

void addrange(ienumerable)     把多個項新增到集合中

ilistasreadonly()                       給集合返回乙個唯讀介面

int capacity                                        獲取或設定集合可以包含的項數

void clear()                                         刪除集合中的所有項

bool contains(t item)                        確定item 是否包含在集合中

void copyto(t array, int index)       把集合中的項複製到陣列array 中,從陣列的索引index 開始

ienumeratorgetenumerator()    獲取乙個ienumerator例項,用於迭代集合。注意,返回的介面強型別化為t,

所以在foreach 迴圈中不需要型別轉換

int indexof(t item)                             獲取item 的索引,如果集合中並未包含該項,就返回−1

void insert(int index, t item)              把item 插入到集合的指定索引位置上

bool remove(t item)                         從集合中刪除第乙個item,並返回true;如果item 不包含在集合中,就返回false

void removeat(int index)                  從集合中刪除索引index 處的項

list還有個item 屬性,允許進行類似於陣列的訪問,如下所示:

t itematindex2 = mycollectionoft[2];

例程:static void main( )

console.readkey();

2.dictionary

這個型別可以定義鍵/值對的集合。與本章前面介紹的其他泛型集合型別不同,這個類需要例項化兩個型別,分別用於鍵和值,以表示集合中的各個項。

例項化dictionary物件後,就可以像在繼承自dictionarybase 的類上那樣,執行相同的操作。

dictionarythings = new dictionary();

things.add("green things", 29);

使用keys 和values 屬性迭代集合中的鍵和值:

foreach (string key in things.keys)

foreach (int value in things.values)

= ",  thing.key,  thing.value);

}

C 學習記錄(26)泛型(1)

首先介紹泛型的概念,先學習泛型的抽象術語,因為學習泛型的概念對高效使用它是至關重要的。日常生活中經常用到一些文件模板,它的格式已經寫好,我們只需要填入姓名 日期等資訊即可使用。泛型是c 乙個非常重要的特性,通過這個技術,我們可以定義像文件模板一樣的類模板。static void main strin...

C 泛型學習

注意push 方法 1.public class stack public void push t item public stack int i stackss new stack 100 ss.push ds 第一種,ss.push ds 編譯通不過,因為 引數t 的型別 必須與 類例項化時定義...

泛型 (2)泛型類 泛型方法 泛型介面

一 泛型類 定義person類 package cn.itcast.p2.bean public class person implements comparable public person string name,int age public int compareto person p ov...