如何从字典中获取单个字符串? C#

时间:2015-04-16 18:00:01

标签: c# dictionary casting

我在使用词典时遇到了一些问题。如何从字典

中获取值

我在Dictionary中存储了一些数据

Dictionary<UserSettings.Languages, string> objectiveLanguages
    = new Dictionary<UserSettings.Languages, string>();

objectiveLanguages.Add(UserSettings.Languages.English, objectiveNameEnglish);
objectiveLanguages.Add(UserSettings.Languages.German, objectiveNameGerman);

有人可以解释一下,如何再次检索存储的值?

4 个答案:

答案 0 :(得分:0)

Console.WriteLine("For key UserSettings.Languages.English, value = {0}.",
    objectiveLanguages[UserSettings.Languages.English]);

/* returns the value of this key, if present.
 */

参考MSDN文档here以获取更多信息。

答案 1 :(得分:0)

Dictionary<UserSettings.Languages, string> objectiveLanguages
    = new Dictionary<UserSettings.Languages, string>();

objectiveLanguages.Add(UserSettings.Languages.English, objectiveNameEnglish);
objectiveLanguages.Add(UserSettings.Languages.German, objectiveNameGerman);

// get some value out of the dict
string dictContent = objectiveLanguages[UserSettings.Languages.English];

答案 2 :(得分:0)

两个选项:

  1. 您知道该值将会出现。

    string str = objectiveLanguages[UserSettings.Languages.English];
    return str;
    
  2. 您不知道该值会出现,或者您想要抛出自己的例外。

    string str;
    if(objectiveLanguages.TryGet(UserSettings.Languages.English, out str))
        return str;
    else
        throw new ArgumentException(); // or return null, or whatever.
    
  3. 这些之间的选择取决于具体情况。既然你正在处理枚举(或等价物),那么第一个应该就足够了。另一方面,如果用户输入数据,我可能会选择第二个。这与使用int.Parseint.TryParse的决定类似。

答案 3 :(得分:0)

使用带方括号的方括号。例如:

// returns objectiveNameEnglish
var retrievedValue = objectiveLanguages[UserSettings.Languages.English];

对于您添加的每一对,第一项是键,第二项是映射到它的值。 MSDN有很好的例子https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx