骨のダイスを転がそう
2010-08-26
_ [C#] デフォルト値つきのDictionary
ふつうに機能としてありそうなもんだが……。
public class JDictionary<Tkey, TValue> : Dictionary<Tkey, TValue> { TValue _default_value; public JDictionary(TValue default_value) { _default_value = default_value; } public new TValue this[Tkey key] { set { base[key] = value; } get { return !base.ContainsKey(key) ? _default_value : base[key] ; } } } class Program { static void Main(string[] args) { var test = new JDictionary<string, string>("デフォルト値"); test["a"] = "apple"; test["b"] = "banana"; test["c"] = "cherry"; Console.WriteLine(test["v"]); Console.WriteLine(test["a"]); Console.WriteLine(test["m"]); Console.WriteLine(test.Count.ToString()); } }