C#泛型集合实例怎么用
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,小编给大家分享一下C#泛型集合实例怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!C# 泛型集合了解之前我们明白集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精
千家信息网最后更新 2025年11月15日C#泛型集合实例怎么用
小编给大家分享一下C#泛型集合实例怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
C# 泛型集合了解之前我们明白集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一。C# 泛型是C# 2.0中的新增元素(C++中称为模板),主要用于解决一系列类似的问题。这种机制允许将类名作为参数传递给泛型类型,并生成相应的对象。将泛型(包括类、接口、方法、委托等)看作模板可能更好理解,模板中的变体部分将被作为参数传进来的类名称所代替,从而得到一个新的类型定义。泛型是一个比较大的话题,在此不作详细解析,有兴趣者可以查阅相关资料。
C# 泛型集合类用起来十分的方便快捷。在这篇随笔里面,我将用链表来模拟c#中的 List﹤T﹥ 类的行为,废话不多说,下面来看我的实现代码,代码中已经写了注释,所以不再对代码进行额外的说明:
using System.Collections; class MyList﹤T﹥ { private MyListNode firstNode;//首节点 private int count;//C# 泛型集合-节点计数 public MyList() { this.firstNode = null; this.count = 0; } //C# 泛型集合-得到List长度 public int GetLength() { return this.count; } //增加一个节点 public void AddElement(T data) { MyListNode first = this.firstNode; if(first==null) { this.firstNode=new MyListNode(data); this.count++; return; } while (first.next != null) { first = first.next; } first.next = new MyListNode(data); this.count++; } //C# 泛型集合-删除一个节点 public bool Remove(T data) { MyListNode first = this.firstNode; if (first.data.Equals(data)) { this.firstNode = first.next; this.count--; return true; } while (first.next!=null) { if (first.next.data.Equals(data)) { first.next = first.next.next; this.count--; return true; } } return false; } //C# 泛型集合-得到指定索引上的集合元素 public T GetAtIndex(int index) { int innercount = 1; MyListNode first = this.firstNode; if (index ﹥ count) { throw new Exception("Index out of boundary"); } else { while (innercount ﹤ index) { first = first.next; innercount++; } return first.data; } } //在指定的索引上插入新的元素 public void InsertAtIndex(int index,T data) { int innercount = 1; MyListNode first = this.firstNode; if (index ﹥ count) { throw new Exception("Index out of boundary"); } if (index == 1) { this.firstNode = new MyListNode(data); this.firstNode.next = first; } else { while (innercount ﹤ index - 1) { first = first.next; innercount++; } MyListNode newNode = new MyListNode(data); newNode.next = first.next; first.next = newNode; } this.count++; } //C# 泛型集合-删除指定索引上的集合元素 public void RemoveAtIndex(int index) { int innercount = 1; MyListNode first = this.firstNode; if (index ﹥ count) { throw new Exception("Index out of boundary"); } if (index == 1) { this.firstNode = first.next; } else { while (innercount ﹤ index - 1) { first = first.next; innercount++; } first.next = first.next.next; } this.count--; } //C# 泛型集合-删除集合中的所有元素 public void RemoveAll() { this.firstNode = null; this.count = 0; } //为实现该集合类能用foreach进行遍历 public IEnumerator GetEnumerator() { MyListNode first = this.firstNode; while (first!= null) { yield return first.data; first = first.next; } } //内部节点类 private class MyListNode { public T data { get; set; }//节点上的元素值 public MyListNode next { get; set; }//节点的下一个节点 public MyListNode(T nodeData) { this.data = nodeData; this.next = null; } } }下面是C# 泛型集合对这个模拟类的使用:
class Program { static void Main(string[] args) { MyList﹤string﹥ ml = new MyList﹤string﹥(); ml.AddElement("xu"); ml.AddElement("jin"); ml.AddElement("lin"); ml.AddElement("love"); ml.AddElement("jasmine"); ml.InsertAtIndex(4, "fiercely"); ml.RemoveAtIndex(2); ml.Remove("lin"); foreach (string s in ml) { Console.WriteLine(s); } } }看完了这篇文章,相信你对"C#泛型集合实例怎么用"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
C#
节点
元素
代码
模板
索引
实例
参数
篇文章
类名
类型
重要
方便快捷
兴趣
变体
完了
对象
废话
接口
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阿狸网络安全主管
济南网络安全保护大联盟
网络安全法律宣传视频创意
盘点2019 网络安全事件
河北pdu服务器专用电源厂商
服务器管理器怎么添加存储
小学网络安全校园日手抄报
网络技术基础会计知识点
访问一台服务器命令
linux系统 数据库
安徽网新网络技术怎么样
链接数据库失败不存在
gis软件字段类型对应数据库
中核集团网络安全
h3c服务器找不到本地盘
服务器调试视频教程
教育信息化和网络安全工作
煜通网络技术有限公司
常见网络安全侵害事例
数据库安全员需要具有什么用
服务器内存条4G怎么升8G
软件开发角色 模板
orm数据库配置方法
宿迁的app软件开发
数据库是信息管理吗
高中网络技术应用用哪个软件
数据库管理系统应具备
你对网络安全工程师的理解
北京回收服务器
节省数据库空间