C#泛型集合定义及使用
C# 语言中泛型集合是泛型中最常见的应用,主要用于约束集合中存放的元素。
由于在集合中能存放任意类型的值,在取值时经常会遇到数据类型转换异常的情况,因此推荐在定义集合时使用泛型集合。
前面《C# ArrayList》与《C# Hashtable》中已经介绍了非泛型集合中的 ArrayList、Hashtable。
非泛型集合中的 ArrayList、Hashtable 在泛型集合中分别使用 List<T> 和 Dictionary<K,V> 来表示,其他泛型集合均与非泛型集合一致。
下面以 List<T> 和 Dictionary<K,V> 为例介绍泛型集合的使用。
【实例 1】使用泛型集合 List<T> 实现对学生信息的添加和遍历。
根据题目要求,将学生信息定义为一个类,并在该类中定义学号、姓名、年龄属性。
在泛型集合 List<T> 中添加学生信息类的对象,并遍历该集合。实现的代码如下。
class Program
{static void Main(string[] args){//定义泛型集合List<Student> list = new List<Student>();//向集合中存入3名学员list.Add(new Student(1, "小明", 20));list.Add(new Student(2, "小李", 21));list.Add(new Student(3, "小赵", 22));//遍历集合中的元素foreach(Student stu in list){Console.WriteLine(stu);}}
}
class Student
{//提供有参构造方法,为属性赋值public Student(int id,string name,int age){this.id = id;this.name = name;this.age = age;}//学号public int id { get; set; }//姓名public string name { get; set; }//年龄public int age { get; set; }//重写ToString 方法public override string ToString(){return id + ":" + name + ":" + age;}
}
执行上面的代码,效果如下图所示。
从上面的执行效果可以看出,在该泛型集合中存放的是 Student 类的对象,当从集合中取岀元素时并不需要将集合中元素的类型转换为 Student 类的类型,而是直接遍历集合中的元素即可,这也是泛型集合的一个特点。
【实例 2】使用泛型集合 Dictionary<K,V> 实现学生信息的添加,并能够按照学号查询学生信息。
根据题目要求,将在实例 1 中所创建学生信息类的对象作为 Dictionary<K,V> 集合中的 value 值部分,key 值部分使用学生信息类中的学号,这样能很容易地通过学号查询学生的信息。实现的代码如下。
class Program
{static void Main(string[] args){Dictionary<int, Student> dictionary = new Dictionary<int, Student>();Student stu1 = new Student(1, "小明", 20);Student stu2 = new Student(2, "小李", 21);Student stu3 = new Student(3, "小赵", 22);dictionary.Add(stu1.id, stu1);dictionary.Add(stu2.id, stu2);dictionary.Add(stu3.id, stu3);Console.WriteLine("请输入学号:");int id = int.Parse(Console.ReadLine());if (dictionary.ContainsKey(id)){Console.WriteLine("学生信息为:{0}", dictionary[id]);}else{Console.WriteLine("您查找的学号不存在!");}}
}
执行上面的代码,效果如下图所示。
从上面的执行效果可以看出,根据输入的学号直接从 Dictionary<int,Student> 泛型集合中查询出所对应的学生信息,并且在输出学生信息时不需要进行类型转换,直接输出其对应的 Student 类的对象值即可。
C#泛型集合定义及使用相关推荐
- c#3.0加入的一些新特性——泛型集合
c#3.0加入的一些新特性 1.泛型集合 2.隐式类型 3.自动实现属性 3.匿名方法 4.扩展方法 5.Lambda表达式 1.泛型集合 在.NET2.0中没有泛型集合定义集合用ArrayList定 ...
- c# combobox集合数据不显示_C#实战036:各种泛型的定义和使用详解
什么是泛型(Generic) 顾名思义,就是明确定义类型,只有在使用的时候蔡需要指定类型,这时泛型中的参数会被相应的值类型替换.当我们有多个方法相同只是类型不同时我们就可以定义一个泛型方法,除了方法泛 ...
- Java_泛型集合的定义及使用
泛型集合的定义及使用 引入 什么是泛型.为什么要引入泛型.泛型类和泛型方法的使用 实例泛型: 创建对象时,为类所定义的泛型,进行参数化赋值. 类:创建对象时,为类所定义的泛型,进行参数化赋值 接口 ...
- 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较
1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...
- C#泛型集合之Dictionaryk, v使用技巧
1.要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib) 2.描述 1).从一组键(Key)到一组值(Value) ...
- List泛型集合总结(一)
为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合: a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须 ...
- C#泛型-泛型集合DictionaryK,V
在System.Collections.Generic命名空间中,与ArrayList相对应的泛型集合是List<T>,与 HashTable相对应的泛型集合是Dictionary< ...
- C#中的集合、哈希表、泛型集合、字典
集合ArrayList 集合:集合可以看做是数组,可以将其看成"长度可变,具有很多方法的数组".使用ArrayList,首先需要导入命名空间using.system.collect ...
- 泛型集合 无序泛型 c#
导入命名空间 using System.Collections.Generic; 定义泛型集合 无序 // Dictionary<键类型,值类型> 变量名 = new Dictionary ...
最新文章
- 2021-04-06 符号执行是啥?
- pandas groupby
- Commons-logging + Log4j 入门指南
- git rebase教程
- MongoDB数据量大于2亿后遇到的问题 及原因分析
- 【转】DB2学习路线
- 《C#3.0 in a Nutshell,3rd Edition》之C#3.0和.net3.5基本介绍篇
- 微软dns能做cname吗_为什么域的根不能是CNAME以及有关DNS的其他花絮
- Qt文档阅读笔记-关于Qt Core的进一步认识
- python和excell_Python与Excel 不得不说的事情
- 51nod1122 机器人走方格 V4
- 正交法设计测试用例时可以使用的工具allpairs---生成正交表
- 简单介绍一下用加速度传感器修正角速度传感器(陀螺仪)累计误差的原理
- AIR应用:二维码批量生成
- 前后端分离的文件上传,上传zip或者rar压缩包(vue+springboot)。
- 翻译来自HiDDeN网络架构-Lifeifei
- 不锈钢常识 - Powered by Discuz!
- 最严谨的计算机语言p,P=NP?这世界真有捷径?
- 服务器压力测试工具0——需求与设计
- 对 GoPro 应用程序摄像机连接的故障诊断