競技プログラミングで使用する辞書方の文法を記述します。
辞書型
Dictionary<string,string> dic = new Dictionary<string,string>(); //追加 dic.Add("01","sample"); //値の取得 string name; bool search = dic.TryGetValue("01",out name);
辞書の中に指定のキーが含まれるか
string S = Console.ReadLine(); var hs = new Dictionary<char,int>(); hs.ContainsKey(S[0])); //含まれたらtrue,含まれなかったらfalse
辞書よりもListの方がスタックオーバーフローにならない(経験談)
Dictionary<int,int> A = new Dictionary<int,int>(); //上記と同じ物をListで書く場合、 List<Tuple<int,int>> A = new List<Tuple<int,int>>(); //同じ内容ならList<Tuple<int,int>>だとスタックオーバーフローにならない場合がある
辞書の文字列型Keyをソートする(ABC155C問題)
List型にしてString型のキーをソートする。(a~z順)
//ここまででdictにDictionary<string,int>でキーと値をセットします。 var ans = new List<string>(); foreach(var s in dict){ ans.Add(s.Key); } ans.Sort(StringComparer.Ordinal);