使用预定义的键创建字典C#

时间:2014-10-02 12:11:42

标签: c# dictionary

我正在寻找一种定义字典以供重用的方法。即。我可以创建字典对象,而不必使用我想要的值填充它。

这是我目前所拥有的(注意代码未经测试,只是示例)

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;
}

最终结果应该是具有预定义键集的新字典对象。 但我想避免这样做。

2 个答案:

答案 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看起来更“花哨”。但这并没有做得更好的表现