namespace _3_2_字典练习
{
class Program
{
// 打印字典
public static void PrintDict(Dictionary<string,int> dict)
{
// for (int i = 0; i<10; i++) // 字典没有下标,不能用for循环
//foreach(KeyValuePair<string,int> pair in dict)
//{
// Console.WriteLine(pair.Key + " " + pair.Value);
//}
// 变量可以用var代替,省略写法
foreach (var pair in dict)
{
Console.WriteLine(pair.Key + " " + pair.Value);
}
}
// TestForeach
static void TestForeach()
{
// 数组中有元素3,4,5,6
int[] array = new int[] { 3, 4, 5, 6 };
// 遍历并打印数组的内容
//for(int i = 0;i < array.Length;i++)
//{ Console.WriteLine(array[i]); }
foreach(int n in array) // 注意n不是下标,而是元素的值
{
Console.WriteLine(n); // 打印:3 4 5 6
}
// string类型的列表
List<string> list = new List<string> { "a", "bbb", "ccc" };
foreach(string s in list)
{
Console.WriteLine(s);
}
// 遍历列表中的元素并打印列表
foreach(var n in list)
{ Console.WriteLine(n); }
}
// 测试删除
static void TestRemove(Dictionary<string,int> dict)
{
Console.WriteLine("测试删除");
// 在遍历字典时,删除key或者修改字典,都可能导致异常(新版本的C#没有此问题)
foreach(var pair in dict)
{
if(pair.Value<=80)
{ dict.Remove(pair.Key); }
}
PrintDict(dict);
Console.WriteLine("删除完毕");
// 上面对应的传统做法,用列表去接,创建一个列表
List<string> list = new List<string>();
// 遍历字典中的每一个元素,如果字段中的值<= 80,就把这条字典对应的key添加到list当中
foreach(var pair in dict)
{
if(pair.Value<=80)
{ list.Add(pair.Key); }
}
// 添加的元素,在字典中要删除
foreach(string name in list)
{
dict.Remove(name);
}
}
static void Main(string[] args)
{
// var 可以用于所有的变量类型。只要编译器可以推断出实际类型
var n = 434;
var f = 3.0f; // 单精度浮点数
var ns = 3434;
var dd = 33;
var v = false;
var list = new List<int>();
List<int> list2 = new List<int>();
// 字典dict
Dictionary<string, int> dict = new Dictionary<string, int>();
// 字典中添加元素
dict.Add("小红", 98);
dict.Add("小猪", 89);
dict.Add("小春", 75);
dict.Add("小庄", 90);
dict.Add("小城", 85);
// 通过pair的key打印Value的值
Console.WriteLine(dict["小红"]);
// 如果字典中小花,打印,如果没有打印字符串
if(dict.ContainsKey("小红"))
{ Console.WriteLine(dict["小红"]); }
else
{ Console.WriteLine("字典中没有找到小红"); }
// 通过key修改值(修改小红的分数)
dict["小红"] = 99;
// ★ Set 小花不存在,添加小花=88
dict["小花"] = 56;
// 删除Key,key和Value一起删除
dict.Remove("小猪");
// 遍历字典,打印内容
PrintDict(dict);
// 测试删除
TestRemove(dict);
Console.ReadKey();
// Console.ReadKey();
}
}
}
该代码示例展示了如何在C#中使用字典,包括遍历打印字典内容,使用foreach循环遍历数组和列表,以及测试字典的删除操作。在删除字典元素时,需要注意在遍历过程中直接修改字典可能引发的问题,提供了解决方案。
6164

被折叠的 条评论
为什么被折叠?



