C#中如何直接向字典内存储的现有List添加元素无需更新字典
问题解答
你原先的步骤2是完全冗余的操作,可以直接省略,仅需要一行代码就能完成向字典内现有List添加新值的需求:memberInfo[num].Add(name);
原理说明
- C#中
List<T>属于引用类型,字典memberInfo里存储的是List实例的引用,而非List对象本身的副本 - 你通过
memberInfo[num]获取到的对象,和字典内部存储的指向的是同一个List实例,直接对这个实例调用Add方法修改内容,字典内存储的List就已经同步更新了,不需要再重新赋值回字典
优化后完整Main方法代码
public static void Main(string[] args) { //Write your code here. Above part is hardcoded can't be changed Console.WriteLine("Group Name :"); string gName = Console.ReadLine(); int num = 0; foreach (KeyValuePair<int, string> VARIABLE in groupInfo) { if (VARIABLE.Value == gName) { num = VARIABLE.Key; } } Console.WriteLine("Member Name:"); string name = Console.ReadLine(); // 简化后的添加操作,无需额外赋值回字典 memberInfo[num].Add(name); // 打印步骤也可简化,无需单独声明临时变量存储List foreach (var item in memberInfo[num]) { Console.WriteLine(item); } }
内容的提问来源于stack exchange,提问作者Subhadeep
相关产品推荐
相关产品推荐

