程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 構建可反轉排序的泛型字典類(6)--實現IDictionary接口中的Keys和Values屬性(7)

構建可反轉排序的泛型字典類(6)--實現IDictionary接口中的Keys和Values屬性(7)

編輯:關於C語言

寫了這麼 多代碼,終於可以實現Keys和Values屬性了。

首先添加這兩個屬性所需的成員變量:

private KeyList<TKey, TValue> keyList;

private ValueList<TKey, TValue> valueList;

然後實現Keys和Values屬性,以上這麼多代碼,就是為了這兩 個屬性:

  public IList<TKey> Keys
  {
    get
    {
      return this.GetKeyListHelper();
    }
  }
  public IList<TValue> Values
  {
    get
    {
      return this.GetValueListHelper();
    }
  }

看到這,你是不是有些不 耐煩了,反正我是有這樣的感覺了。但有一點你必須明白,FCL裡的代碼就是這麼實現的。

好,做了這麼多工作,終於可以看看成果, 測試一下是否可用了。在Main方法添加如下代碼:

  static void Main()
  {
     ReversibleSortedList<int, string> rs = new ReversibleSortedList<int, string>();
    //添加元素
     rs.Add(3, "a");
    rs.Add(1, "b");
    rs.Add(2, "c");
     rs.Add(6, "d");
    rs.Add(5, "e");
    rs.Add(4, "f");
    //打印鍵 /值
    foreach (KeyValuePair<int, string> d in rs)
    {
      Console.WriteLine(d.Key + "  " + d.Value);
    }
    //打印鍵,這裡訪問了Keys屬性
    foreach (int i in rs.Keys)
    {
      Console.Write(i + " ");
    }
    Console.WriteLine();// 換行
    //打印值,這裡訪問了Values屬性
    foreach (string s in rs.Values)
    {
       Console.Write(s + " ");
    }
    Console.WriteLine();//換行
    Console.WriteLine (rs.Keys[3]); //通過索引訪問鍵
    Console.WriteLine(rs.Values[4]); //通過索引訪問值
  }

上帝啊 !太痛苦了,如果你也有這樣的感覺,請下載現成的代碼,更改Main()方法裡的東西,嘗試是否能通過Keys和Values屬性更改元素。

ReversibleSortedList 0.5版本:實現Keys和Values屬性

運行結果:

1  b
2  c
3  a
4  f
5  e
6  d
1 2 3 4 5 6
b c a f e d
4
e

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved