骨のダイスを転がそう
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());
}
}
[ツッコミを入れる]