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

How can I get a single string out of the Dictionary? C#

我在使用词典时遇到了一些问题。我怎样才能从字典中取回值

我在词典中存储了一些数据

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

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

谁能解释一下,如何再次检索存储的值?

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

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

请参阅 MSDN 文档 here 了解更多信息。

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

两个选项:

  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.
    

这两者之间的选择取决于具体情况。由于您正在处理枚举(或等效枚举),因此第一个可能就足够了。另一方面,如果用户正在输入数据,我可能会选择第二个。这与使用 int.Parseint.TryParse.

的决定类似

使用方括号,里面有一个键。例如:

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

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