C#中泛型的使用

來源:互聯網
上載者:User
文章目錄
  • 1. List<T>
  • 2. Dictionary<TKey, TValue>

命名空間:using System.Collections.Generic;

普通數組:在聲明時必須制定數組的長度和資料類型;ArrayList:數組元素資料類型和長度不受限制,但效率稍微低些;泛型:類似於數組功能,其長度不受限制,資料類型在聲明時必須指定。

C#中預定義了集中常用的泛型類,如:List<T>、Dictionary<TKey, TValue>、Queue<T>等等

1. List<T>
文法:List<類型> 變數 = new List<類型>();List<類型> 變數 = new List<類型> { XXX, XXX, XXX};// 聲明並初始化

樣本1:簡單實用:聲明、初始化、賦值、讀取等操作。在下例中可以看出,變數list1可以任意的添加元素,長度不受限制。

// 聲明方式1List list1 = new List();list1.Add(211);list1.Add(985);// 聲明方式2List list2 = new List { 211, 985 };list2.Add(136);for (int i = 0; i < list2.Count; i++){    Console.Write(list2[i].ToString());}
2. Dictionary<TKey, TValue>

上例中泛型變數list1中儲存的元素是Int類型的變數,而在實際的應用當中往往要比這更加複雜。Dictionary<Tkey, TValue>泛型類為C#預定義的泛型類,它所儲存的每個元素由一對{key:value}兩個變數組成。

  • 每個元素可以理解為一行記錄,Key為主鍵,必須唯一,可以為Int、String等類型。
  • Value項可以為任意類型,可以是Int、String、數組等,也可以是執行個體化的對象。
① 簡單使用
class Program{            static void Main(string[] args)    {        // 執行個體化三個User對象        User user1 = new User("李寧", 21);        User user2 = new User("耐克", 42);        User user3 = new User("阿迪", 31);        // 聲明Dictionary泛型變數users        // Key的類型為Int;Value的類型為User        Dictionary<int, User> users = new Dictionary<int, User>();        // 向users添加“元素”,“元素”的key不能重複        users.Add(2, user1);        users.Add(3, user2);        users.Add(5, user3);        // 迴圈遍曆每個“元素”        foreach (var p in users)        {            Console.Write(p.Key);            Console.Write(p.Value.name);            Console.Write(p.Value.age);        }        // 直接遍曆元素的Values        foreach (User u in users.Values)        {            Console.Write(u.name);            Console.Write(u.age);        }    }}// User類class User{    public string name;     // 姓名    public int age;         // 年齡    public User(string name, int age)    {        this.name = name;        this.age = age;    }}
② 作為參數使用
class Program{    static void Main(string[] args)    {        User user1 = new User("李寧", 21);        User user2 = new User("耐克", 42);        User user3 = new User("阿迪", 31);                Dictionary<int, User> users = new Dictionary<int, User>();        users.Add(2, user1);        users.Add(3, user2);        users.Add(5, user3);                        Program.show(users);    // 將泛型變數作為函數參數使用    }    // 注意參數類型的書寫格式    static void show(Dictionary<int, User> list)    {        foreach (var p in list)        {            Console.Write(p.Key);            Console.Write(p.Value.name);            Console.Write(p.Value.age);        }            }}class User{    public string name;     // 姓名    public int age;         // 年齡    public User(string name, int age)    {        this.name = name;        this.age = age;    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.