0

ちょっと、そこ。

独学で 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を整数として取得し、それによってdishTypeを初期化できます。スープの x や砂漠の q のような文字で選択肢を取得したい。私は試した

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

しかし、それを作ることができませんでした。それを理解するのを手伝ってくれる人はいますか?

4

1 に答える 1

0

辞書から結果を取得できるようにするには、辞書の仕組みを理解する必要があります。ディクショナリは、キーと値のペアです。したがって、デザートを 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 と入力すると、皿の 1 つが表示されます。

foodTypeMap["x"] = "Soups";

キーの値を x に変更したので、1 ではなく x を入力すると「スープ」が表示され、他の値も他の文字に変更されました。

辞書にないものを入力すると、例外が発生します

于 2021-04-18T07:47:04.237 に答える