2012年1月12日 星期四

C# Dictionary的用法,以及查字典的用途

什麼是Dictionary?他是個很簡單的東西,概念跟字典有點類似沒錯,如果我有10組鑰匙,跟10組物品,且滿足兩個條件,一、每個鑰匙不重複,二、每個鑰匙配一個物品。(物品可以長的一樣,比方第一個物品跟第六個物品都是一樣的杯子,只要能夠不會讓鑰匙沒有搭配的物品,或兩把鑰匙搭配到同一個物品就行了。)那接下來,你問Dictionary,某一把鑰匙,他就會告訴你對應的物品是什麼。我們看一下範例程式片段:
      
Dictionary<string, string> MyDic = new Dictionary<string, string>( );

// 建立字典
private void CreateDictionary( )
{
    MyDic.Add( "Name", "Jack" );
    MyDic.Add( "Blog", "Jack’s Blog" );
    MyDic.Add( "Group", "KTV Group" );
}

// 查字典
private String FindInDictionary( String FindMe )
{
    if ( true == ( MyDic.ContainsKey( FindMe ) ) )
    {
        return MyDic[ FindMe ];
    }
    else
    {
        return "Not Found";
    }
}

// 巡整個字典
private void ShowAllInDictionary( )
{
    foreach ( var OneItem in MyDic )
    {
        Console.WriteLine( "Key = " + OneItem.Key + ", Value = " + OneItem.Value );
    }
}

除了上面那種先宣告再Add的方式之外,也可以用底下的方式來直接宣告並產生內容
Dictionary<string, string> dctNewWay =
        new Dictionary<string, string>()
        {
            {"Key1", "AAAA"}, {"Key2", "BBBB"},
            {"Key3", "CCCC"}, {"Key4", "DDDD"}
        };


另外,值得一提的是,KeyValue並不限定只能用String,什麼型別都可以,所以你也可以把Class塞到Value,然後其中一個屬性拿出來當作Key,就可以方便的確認有沒有重複的Key,不用塞到SQL才知道。

4 則留言:

  1. 簡單明瞭!!!謝謝版主熱心分享:D

    回覆刪除
  2. 感謝教學,十分簡單易懂 :3

    感覺起來這跟PHP和Python的自訂索引感覺很像。

    回覆刪除
  3. 本來以為是Array, 後來大大地清楚了. 感謝+1

    回覆刪除