#C#で辞書(Dictionary)型における値のソートを書いてみる
C#では辞書型とは言わないみたいですね、まぁいっか。
まず,どういう時に使うのか?
例えば,keyがstring型,valueがint型であるとする
これは、何かのランキングを作る際などに使えるのではないだろうか.
月刊読書数ランキングを作成してみると,この手法でのソートは重宝する.
では、実際のコード.
// Linqを使うから忘れないように.
using System.Linq;
using System;
class sa
{
public static void Main()
{
// 個人名とその人の読書数の辞書があったとする.reading_booksとしておく.
// これで値の小さい順のソートができる.xはラムダ式で,適当な変数である.
var hoge = reading_books.OrderBy((x) => x.Value);
// 同様に,大きい順でのソート.
var hogehoge = reading_books.OrderByDescending((x) => x.Value);
// 実際の列挙(小さい順)
foreach(var tekito in hoge)
{
Console.WriteLine("key{0},value{1}",tekito.Key,tekito.Value);
}
// 実際の列挙(大きい順)
foreach(var tekito in hogehoge)
{
Console.WriteLine("key{0},value{1}",tekito.Key,tekito.Value);
}
}
}
はい,こんな感じで出来ます!
まぁ,割と簡単ですね♩