【问题标题】:How to get input with char instead of integer in c sharp如何在c sharp中使用char而不是整数获取输入
【发布时间】:2021-07-03 15:26:04
【问题描述】:

你好。

我正在尝试自己学习升 C,但我在将输入作为角色输入时遇到了问题。 我的代码部分是:

    var foodTypeMap = new Dictionary<string, string>();
    foodTypeMap["1"] = "Soups";
    foodTypeMap["2"] = "Vegetables";
    foodTypeMap["3"] = "Mains";
    foodTypeMap["4"] = "Deserts";
    ...
    ...
    string fType = Console.ReadLine();
    string dishType = " ";
    //if else statements here.. etc
    dishType = foodTypeMap[fType];

通过这种方式,我可以将 fType 获取为整数并以此初始化 discType。我想通过字符来选择,比如 x 代表汤,q 代表沙漠。我试过了

Using Console.ReadLine()[0]
Using Console.ReadKey().KeyChar
Using Char.TryParse()
Using Convert.ToChar()

但是来不及了。有没有人可以帮助我理解这一点?

【问题讨论】:

  • 一般来说,ftype[0] 会给你字符串的第一个字符。您只说“无法做到”,我们需要知道当您尝试使用它时发生了什么来告诉您如何改进它。您是否修改了字典以使 x 实际上 表示汤?因为现在1 表示汤,而不是x
  • @LasseV.Karlsen 当您说修复字典时,我得到了问题.. 这对我来说已经足够了。谢谢:D

标签: c# list input clist


【解决方案1】:

为了能够从字典中获取结果,您需要了解字典的工作原理。 字典是键:值对。 所以如果你想让甜点是q,你需要编辑“4”,因为这是关键,然后把它改成q。

var foodTypeMap = new Dictionary<string, string>();
    foodTypeMap["x"] = "Soups";
    foodTypeMap["y"] = "Vegetables";
    foodTypeMap["m"] = "Mains";
    foodTypeMap["q"] = "Deserts";
        
   var PickFromDictionary = Console.ReadLine();
        Console.WriteLine(foodTypeMap[PickFromDictionary]);

此代码将运行,如果您输入 x、y、m 或 q,您将得到其中一个菜。

foodTypeMap["x"] = "Soups";

我将 Key 值更改为 x,因此如果您现在输入 x,您将得到“Soups”而不是 1,并且我也将其他值更改为其他字符。

如果您键入的内容不在字典中,您将获得异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-11
    相关资源
    最近更新 更多