更改键类型字符串和值的字典中键的值。

我有一个 Dictionary 钥匙型 string 价值 List<int>我需要改变钥匙 string 价值,同时保持 List<int> 价值观。

static void ChangeName(Dictionary<string, List<int>> studentGrades)
{
    Console.WriteLine("Please enter the student whose name you wish to change.");
    string input = Console.ReadLine();
    if (studentGrades.ContainsKey(input))
    {
        Console.WriteLine("What would you like to change " + input + " to?");
        string newname = Console.ReadLine();
        studentGrades[input] = newname;
    }
}

我知道,做 studentGrades[input] = newname; 不起作用,因为它试图改变的是 List<int>. 我也不确定是否可以改变键的值,有什么可能的变通方法?我得到的错误是 CS0029Visual Studio.

解决方案:

字典键不能被修改

但你可以用另一种方法解决这个问题。

  • 你在检查字典中是否有你的输入,如果有键,你要给它一个新的名字,但值不变。所以借助于 TryGetValue 方法首先获得实际值。

  • 然后,你将不得不删除旧的键,并添加一个键与 newName 您将提供作为输入。

只需在您的 ContainsKey 阻止

    studentGrades.TryGetValue(input, out var valToUpdate);
    studentGrades.Remove(input);
    studentGrades.Add(newName,valToUpdate);

给TA打赏
共{{data.count}}人
人已打赏
未分类

为什么Pelican会忽略STATIC_PATHS?

2022-9-8 15:02:40

未分类

无法验证c#中对mock的调用。

2022-9-8 15:02:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索