更新字典C#

Joc*_*ery -1 c# asp.net-mvc-4

我在更新字典方面遇到了问题

我也读过很多关于这个说法的话题(例如链接)

ExampleDict[key] = value;
Run Code Online (Sandbox Code Playgroud)

我试着用自己的代码:

模型:

  public Dictionary<int, string> Info { get; set; }
  public Dictionary<int, string> GetInfo(int id)
    {
        Info = new Dictionary<int, string>();

        var game = db.Games.Find(id);

        var playerOne = db.Players.Find(game.PlayerOneId);
        var playerTwo = db.Players.Find(game.PlayerTwoId);
        var PlayerOneName = playerOne.Nickname;
        var PlayerTwoName = playerTwo.Nickname;
        int scoreOne = CountScorePlayerOne();
        int scoreTwo = CountScorePlayerTwo();


        // old aproach:
        Info.Add(scoreOne, PlayerOneName);
        Info.Add(scoreTwo, PlayerTwoName);

        //new approach
        Info[key] = scoreOne;

        return Info;


    }
Run Code Online (Sandbox Code Playgroud)

错误

当前上下文中不存在名称"key"

注意:我是学生,这是一个学校项目.

关于我做错了什么的任何想法?

通过Jon Senchyna的代码示例解决,谢谢!

Jon*_*yna 7

看来你永远不会声明变量key.您可能并不想在"新方法"行中使用"密钥".

此外,我相信你的Dictionary是倒退,因为看起来球员名称应该是关键,而不是他们的得分.你当前声明它的方式(Dictionary<int, string>),你正在创建一个字典,其键是int(得分?),其值是string(名称?).

以下是我建议的修改:

// Corrected dictionary definitions
public Dictionary<string, int> Info { get; set; }
public Dictionary<string, int> GetInfo(int id)
{
    // You may want to use a local variable here instead
    Info = new Dictionary<string, int>();

    ...

    Info[PlayerOneName] = scoreOne;
    Info[PlayerTwoName] = scoreTwo;

    return Info;
}
Run Code Online (Sandbox Code Playgroud)

以下是一些有用的链接,用于了解有关使用Dictionary类的更多信息(如果您稍微浏览一下,则通常使用C#):


归档时间:

查看次数:

622 次

最近记录:

13 年,1 月 前