我在使用词典时遇到了一些问题。如何从字典
中获取值我在Dictionary中存储了一些数据
Dictionary<UserSettings.Languages, string> objectiveLanguages
= new Dictionary<UserSettings.Languages, string>();
objectiveLanguages.Add(UserSettings.Languages.English, objectiveNameEnglish);
objectiveLanguages.Add(UserSettings.Languages.German, objectiveNameGerman);
有人可以解释一下,如何再次检索存储的值?
答案 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)
两个选项:
您知道该值将会出现。
string str = objectiveLanguages[UserSettings.Languages.English];
return str;
您不知道该值会出现,或者您想要抛出自己的例外。
string str;
if(objectiveLanguages.TryGet(UserSettings.Languages.English, out str))
return str;
else
throw new ArgumentException(); // or return null, or whatever.
这些之间的选择取决于具体情况。既然你正在处理枚举(或等价物),那么第一个应该就足够了。另一方面,如果用户输入数据,我可能会选择第二个。这与使用int.Parse
与int.TryParse
的决定类似。
答案 3 :(得分:0)
使用带方括号的方括号。例如:
// returns objectiveNameEnglish
var retrievedValue = objectiveLanguages[UserSettings.Languages.English];
对于您添加的每一对,第一项是键,第二项是映射到它的值。 MSDN有很好的例子https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx