C#【泛型篇】Dictionary应用实例2
2023-09-11 14:15:48 时间
using System;
using System.Collections.Generic;
namespace ConsoleApp3
{
class Person
{
public string name;
public int age;
//构造函数
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
}
class Program
{
static void Main(string[] args)
{
//定义一个字典变量
Dictionary<int, Person> dicPerson = new Dictionary<int, Person>();
LearnDictionaryInfo();
void LearnDictionaryInfo()
{
//添加键值
Person p1 = new Person("Star", 22);
Person p2 = new Person("SS", 21);
dicPerson.Add(0, p1); //方式1
dicPerson[1] = p2; //方式2
//取值
Console.WriteLine("\n");
Console.WriteLine("取值 name:" + dicPerson[0].name + "—" + "age:" + dicPerson[0].age);
//改值
Console.WriteLine("\n");
dicPerson[1].age = 20;
Console.WriteLine("改值 name:" + dicPerson[1].name + "—" + "age:" + dicPerson[1].age);
//遍历key
Console.WriteLine("\n");
Console.WriteLine("遍历 key");
foreach (int key in dicPerson.Keys)
{
string id = "用户ID:" + key;
string str = string.Format("name:{0} age:{1}", dicPerson[key].name, dicPerson[key].age);
Console.WriteLine(id + "\t" + str);
}
//遍历value
Console.WriteLine("\n");
Console.WriteLine("遍历 value");
foreach (Person value in dicPerson.Values)
{
string str = string.Format("name:{0} age:{1}", value.name, value.age);
Console.WriteLine(str);
}
//遍历字典
Console.WriteLine("\n");
Console.WriteLine("遍历字典");
foreach (KeyValuePair<int, Person> kvp in dicPerson)
{
string str = string.Format("key:{0}/name:{1}/age:{2}", kvp.Key, kvp.Value.name, kvp.Value.age);
Console.WriteLine(str);
}
// 删除元素
Console.WriteLine("\n");
Console.WriteLine("删除元素");
if (dicPerson.ContainsKey(1)) //如果存在
dicPerson.Remove(1);
foreach (Person value in dicPerson.Values)
{
string str = string.Format("name:{0} age:{1}", value.name, value.age);
Console.WriteLine(str);
}
//清除所有的元素
dicPerson.Clear();
Console.ReadLine();
}
}
}
}
相关文章
- c#实现串口操作 SerialPort
- C#子线程中更新ui-----c# 多线程多文件批量下载
- C#图片处理示例(裁剪,缩放,清晰度,水印)
- VS2010在C#头文件中添加文件注释的方法
- 《C#高级编程》学习笔记----c#内存管理--栈VS堆
- C#.NET常见问题(FAQ)-如何把定义存放类实例的数组
- C#基础视频教程2 常见数据类型和属性方法
- [C#]I/O完成端口的类定义和测试实例
- 编写高质量代码改善C#程序的157个建议[避免finaly内的无效代码、避免嵌套异常、避免吃掉异常、注意循环异常处理]
- 重学c#系列——盛派自定义异常源码分析(八)
- ASP.NET 运行状况监视的日志记录错误详细信息 (C#)
- C# 将日志写入文本文件
- Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
- c# webbrowser控件内核版本强制修改
- (三十八)c#Winform自定义控件-圆形进度条-HZHControls
- 从C,C++,JAVA和C#来看String库的发展(二)---JAVA和C#篇
- C#委托和事件开发中的实例-类操纵窗体动态显示内容
- C# 文件正由另一进程使用,因此该进程无法访问该文件
- c# 动态实例化一个泛型类
- [C#]c#中数据的同步加锁机制 的几种方法
- C#创建Windows窗体应用程序实例3【个人信息调查】
- 使用c#语言进行xml文件的读取和实例化的常用方式
- C#委托和事件开发中的实例-类操纵窗体动态显示内容
- C# 委托多播实例【通俗易懂】