我正在寻找一种定义字典以供重用的方法。即。我可以创建字典对象,而不必使用我想要的值填充它。
这是我目前所拥有的(注意代码未经测试,只是示例)
public Dictionary<string, string> NewEntryDictionary()
{
Dictionary<string, string> dic = new Dictionary<string, string>();
// populate key value pair
foreach(string name in Enum.GetNames(typeof(Suits))
{
dic.Add(name, "");
}
return dic;
}
最终结果应该是具有预定义键集的新字典对象。 但我想避免这样做。
答案 0 :(得分:5)
您是否关注自己编写的代码量或其效率并不是很清楚。从效率的角度来看,它很好 - 它的O(N),但是如果你用N个条目填充字典,那很难避免。
你可以使用LINQ:
来缩短源代码public Dictionary<string, string> NewEntryDictionary()
{
return Enum.GetNames(typeof(Suits)).ToDictionary(name => name, name => "");
}
当然,它不会更有效率......它只是更短的代码。
答案 1 :(得分:0)
如果您只想根据枚举保存值,请使用
Dictionary<Suits,String>
代替Dictionary<String,String>
其他一切,乔恩已经说过了。使用LinQ看起来更“花哨”。但这并没有做得更好的表现