我试图制作一个基本程序,用户输入一个字母并输出它的莫尔斯代码等价物。我的问题是该程序似乎无法找到密钥。任何修复?请记住我尽量保持简单。
Dictionary<string, string> values = new Dictionary<string, string>();
values.Add("A", ".-");
values.Add("B", "-...");
values.Add("C", "-.-.");
// ...
values.Add("8", "---..");
values.Add("9", "----.");
values.Add("0", "-----");
Console.WriteLine("Pleae enter the value you wish to convert");
string translate = Console.ReadLine();
string translateupper = translate.ToUpper();
if (values.ContainsKey(translateupper) == true)
{
string Converted = (values["translateupper"].ToString());
Console.WriteLine(Converted);
}
答案 0 :(得分:5)
删除变量名称旁边的引号:
string Converted = (values[translateupper].ToString());
注意:
TryGetValue
方法Dictionary<char,string>
,因为您的密钥实际上是字符记住笔记:
var values = new Dictionary<string, string> {
["A"] = ".-",
["B"] = "-...",
["C"] = "-.-.",
// etc
};
string translate = Console.ReadLine();
string converted;
if (values.TryGetValue(translate.ToUpper(), out converted))
Console.WriteLine(converted);
// you can add 'else' block to notify user that translation was not found
使用C#7.0,您可以声明变量。