C# 中使用有序表SortedList

來源:互聯網
上載者:User
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace 集合
  6. {
  7.     class 有序表
  8.     {
  9.         public static void Main()
  10.         {
  11.             //如果要用排好序的表,可以使用SortedList<TKey,TValue>來給元素排序
  12.             SortedList<string , string > books = new SortedList<string,string>() ;
  13.            
  14.             books.Add( "aladdin" , "64kb@163.com" ) ;
  15.             books.Add( "zhaohaifu" , "65kb@163.com" ) ;
  16.             books.Add( "jacky" , "66kb@163.com" ) ;
  17.             books.Add( "fuck" , "67kb@163.com" ) ;
  18.             //鍵是不允許重複的,下面我們用Add方法重新添加一次aladdin
  19.             //books.Add( "aladdin" , "sdaf" ) ; //刨出異常
  20.             //但如果使用索引來賦值,如果鍵存在,則覆蓋,如果不存在,相當於ADD添加。
  21.             books[ "aladdin" ] = "haha_new" ;
  22.             foreach( string str in books.Keys )
  23.             {
  24.                 Console.WriteLine( str ) ;
  25.             }
  26.             foreach( string str in books.Values )
  27.             {
  28.                 Console.WriteLine( str ) ;
  29.             }
  30.             //一次性遍曆值鍵 
  31.             foreach( KeyValuePair<string,string> book in books )
  32.             {
  33.                 Console.WriteLine( "名字:{0}郵箱:{1}" , book.Key , book.Value ) ;
  34.             }
  35.             //從上面結果可以看出,aladdin被替換了,他的值變成了haha_new
  36.             //下面簡單介紹一下SortedList<TKey,TValue>中的方法與屬性
  37.             //Capacity  這個屬性用來設定與得到有序表的容量,與Ilist一樣,也是成倍增長的
  38.             //Comparer 返回與有序表相關的比較子,可以從構造中傳入該比較子
  39.             // Remove() RemoveAt()  按鍵刪除與按索引刪除
  40.             // ContainsKey() ; ContainsValue() ; 檢查是不是有包含指定值的鍵,或者值
  41.             // TryGetValue() ; 嘗試獲得指定鍵的值,如果有就是true 並用out把值帶回來,沒有就是flase
  42.             //按鍵刪除
  43.             Console.WriteLine(  "-------------------------按鍵刪除--------------" ) ;
  44.             books.Remove( "aladdin" ) ;
  45.             foreach( KeyValuePair<string,string> book in books )
  46.             {
  47.                 Console.WriteLine( "名字:{0}郵箱:{1}" , book.Key , book.Value ) ;
  48.             }
  49.             //可以看出aladdin被刪除了
  50.             //下面我們按索引刪除
  51.             books.RemoveAt( 0 ) ;
  52.             Console.WriteLine(  "-------------------------按索引刪除--------------" ) ;
  53.             foreach( KeyValuePair<string,string> book in books )
  54.             {
  55.                 Console.WriteLine( "名字:{0}郵箱:{1}" , book.Key , book.Value ) ;
  56.             }
  57.             //結果中看出fuck被刪除,證明刪除索引是以插入順序為準,不是排序後的順序。
  58.             //檢查是否包含aladdin 檢查是否包含zhaohaifu (鍵)
  59.             Console.WriteLine( "是否包含aladdin鍵:{0}" , books.ContainsKey( "aladdin" ) ) ; // false 
  60.             Console.WriteLine( "是否包含zhaohaifu鍵:{0}" , books.ContainsKey( "zhaohaifu" ) ) ; // true 
  61.             //檢查是否包含64kb@163.com 檢查是否包含64kb@163.com (值)
  62.             Console.WriteLine( "是否包含aladdin鍵:{0}" , books.ContainsValue( "64kb@163.com" ) ) ; // false 
  63.             Console.WriteLine( "是否包含zhaohaifu鍵:{0}" , books.ContainsValue( "65kb@163.com" ) ) ; // true 
  64.             //此處的索引值是按排序後的順序
  65.             int keyindex = books.IndexOfKey( "zhaohaifu" ) ;
  66.             Console.WriteLine( "zhaohaifu索引值:{0}" , keyindex ) ;
  67.             string value = "" ;
  68.             if( books.TryGetValue( "aladdin" , out value ))
  69.             {
  70.                 Console.WriteLine( "得到了aladdin的值 :{0}" , value ) ;
  71.             }
  72.             string value2 = "" ;
  73.             if( books.TryGetValue( "zhaohaifu" , out value2 ))
  74.             {
  75.                 Console.WriteLine( "得到了zhoahaifu的值 :{0}" , value2 ) ;
  76.             }
  77.             Console.ReadLine() ;
  78.             //註:本類是SortedList的泛型片,與之相對應的對象版的同名類存在,注意使用
  79.         }
  80.     }
  81. }

聯繫我們

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