端くれプログラマの備忘録 C# [C#] 連想配列を使う (Dictionaryクラス)

[C#] 連想配列を使う (Dictionaryクラス)

連想配列を使って英文中の単語の出現回数をカウントするサンプル。

Dictionary<string, int> dict = new Dictionary<string, int>();

string file = @"C:\Temp\test.txt";
using (StreamReader reader = new StreamReader(file))
{
    string str = reader.ReadToEnd();
    char[] delimiters = { ' ', ',', '.', ':', ';', '\r', '\n' };
    foreach (string word in str.Split(delimiters))
    {
        word.Trim(); //念のため

        if (word.Length > 0)
        {
            if (dict.ContainsKey(word))
            {
                // 再出現(カウントアップ)
                dict[word]++;
            }
            else
            {
                // 初出現
                dict[word] = 1;
            }
        }
    }
}
// 出現回数が多い順にソートして"(回数) 単語"形式で表示
foreach (KeyValuePair<string, int> pair in dict.OrderByDescending(p => p.Value))
{
    Debug.WriteLine("({0}) {1}", pair.Value, pair.Key);
}

参考サイト

Dictionary(TKey, TValue) クラス (System.Collections.Generic)
http://msdn.microsoft.com/ja-jp/library/xfhwa508(v=vs.110).aspx