C#泛型List )

來源:互聯網
上載者:User
在建立列表類時,清單項目的資料類型可能是int、string或其他類型,但不管是什麼類型,如果對列表類的處理方法相同,就沒有必要事先指定資料類型,留待列表類執行個體化時再指定。這相當於把資料類型當成參數,可以最大限度地重用代碼、保護類型的安全以及提高效能。泛型將型別參數(type parameter)的概念引入.NET Framework,通常使用T作為泛型型別參數。ArrayList是非泛型集合類,添加到ArrayList中的任何引用或實值型別都將隱式地向上強制轉換為Object。如果項是實值型別,則必須在將其添加到列表中時進行裝箱操作,在檢索時進行拆箱操作。另一個限制是缺少編譯時間類型檢查,因為ArrayList將把所有項都強制轉換為Object,所以在編譯時間無法防止用戶端代碼將int類型和string同時加入,編譯也能通過,直到運行時才能檢測到錯誤。 泛型最常見的用途是建立集合類。.NET Framework類庫在Collections.Generic命名空間中包含幾個泛型集合類。List<T>類是ArrayList類的泛型等效類。使用大小可按需動態增加的數組實現IList泛型介面。動態數組的好處是不必事先設定較大的數組,減少不必要的記憶體開銷。微軟MSDN的C#編程指南建議使用泛型集合類,如List<T>類,而不要使用非泛型集合類,如ArrayList類,也不要自行建立集合類。原因是不必做.NET Framework已經完成的工作,公用語言運行庫能夠共用Microsoft中繼語言代碼和元素據,這是自己編寫的強型別所無法做到的。下面舉例說明List<T>的用法。public class Student                       //學生類作為資料來源{    public string Name { get; set; }    public List<int> Scores { get; set; }  //成績集合}static void Main(string[] args){    //初始化泛型類List<Student>,集合中的元素包含一個成績的內部序列List<int>    List<Student> students = new List<Student>();    students.Add(new Student { Name = "張三", Scores = new List<int> { 93, 72, 88, 78 } });    students.Add(new Student { Name = "李四", Scores = new List<int> { 95, 71, 88, 68 } });    //使用Linq查詢    var Query = from student in students                where student.Scores.Average() >= 80                select new                {                     姓名 = student.Name,                     成績 = student.Scores.Average()                };    foreach (var q in Query)        Console.WriteLine("{0}  {1}", q.姓名, q.成績);}輸出:張三  82.75 / 李四 80.5
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.