It's some kind of weird magic, ContainsKey returns false. I tried to use InvariantCulture comparer with the same result.
GameCommands = new Dictionary<string, GameCommand>(StringComparer.Ordinal)
{
{"Start new game with deck", StartGame},
{"Tell color", TellColor},
{"Tell rank", TellRank},
{"Drop card", Drop},
{"Play card", Play},
};
Debug.WriteLine(GameCommands.ContainsKey("Tell color"));
False
I solve it by removing quotes in keys and typing them again. I want to know why this is happening.