using System;
using System.Collections.Generic;class Program
{private static Dictionary<string, string> myDictionary = new Dictionary<string, string>();//字典索引必须是唯一的,值可以不是static void Main(){// 向静态成员 myDictionary 添加元素myDictionary.Add("第一个", "奥特曼");//myDictionary["第2个"] = "value2";myDictionary.Add("第二个", "怪兽");// 打印字典的长度(元素数量)Console.WriteLine("这个字典的长度为 " + myDictionary.Count);// 打印 key1 对应的值Console.WriteLine("第一个对应的值为: " + myDictionary["第一个"]);Console.WriteLine("第二个对应的值为: " + myDictionary["第二个"]);// 打印 奥特曼 对应的键,需要遍历字典string valueToFind = "奥特曼";string keyOfValue = ""; // 初始化为空字符串foreach (var kvp in myDictionary){if (kvp.Value == valueToFind){keyOfValue = kvp.Key;break;}}// 打印 奥特曼的索引,在字典中索引实际上就是键Console.WriteLine("奥特曼对应的键为: " + keyOfValue);Console.WriteLine("*************************************************************");//移除第二个myDictionary.Remove("第二个");//修改奥特曼为升级版myDictionary.Add("第三个", "奥特3曼");myDictionary.Add("第四个", "奥特3曼");myDictionary["奥特曼"] = "奥特曼升级版";//移除所有奥特3曼string valueToFind2 = "奥特3曼";List<string> keysToRemove = new List<string>();foreach (var kvp in myDictionary){if (kvp.Value == valueToFind2){keysToRemove.Add(kvp.Key); // 将要删除的键添加到列表中}}// 反向循环列表,以避免在迭代过程中修改集合for (int i = keysToRemove.Count - 1; i >= 0; i--){myDictionary.Remove(keysToRemove[i]); // 移除键}//修改所有的奥特曼8为奥特曼8升级版myDictionary.Add("第8个", "奥特曼8");myDictionary.Add("第9个", "奥特曼8");myDictionary.Add("第10个", "奥特曼8");myDictionary.Add("第11个", "奥特曼8");string valueToFind3 = "奥特曼8";List<string> keysToXiugai = new List<string>();foreach (var kvp in myDictionary){if (kvp.Value == valueToFind3){keysToXiugai.Add(kvp.Key); // 将要删除的键添加到列表中}}for (int i = keysToXiugai.Count - 1; i >= 0; i--){myDictionary[keysToXiugai[i]] = "奥特曼8升级版";}//删库跑路(清除字典)
myDictionary.Clear();// 打印消息foreach (var kvp in myDictionary) {Console.WriteLine(kvp); //kvp.Key//访问键,kvp.Value访问值}Console.WriteLine("代码运行很成功");}
}