C#泛型集合实例怎么用
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,小编给大家分享一下C#泛型集合实例怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!C# 泛型集合了解之前我们明白集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精
千家信息网最后更新 2026年11月04日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安全错误
数据库的锁怎样保障安全
互联网科技工作委员会
互联网科技英文
互联网科技公司官网
鑫亿盛互联网科技
百单互联网科技有限公司
互联网科技小额贷款
齐家互联网科技有限公司
人人互联网科技是培训
左右互联网络科技
老年人脱离互联网科技的作文
江苏南京365互联网科技
互联网科技有哪些公司
厦门千工互联网科技有限公司
互联网5g黑科技有哪些
天津腾达互联网科技有限公司
西安小鹰速贷互联网科技有限公司
无锡工业互联网科技有限公司
中国互联网有什么科技
互联网科技包装股份有限公司上市
上海旺乐尼互联网科技有限公司
广州为想互联网科技有限公司
互联网扶贫科技
美国互联网科技
奇酷互联网科技
壹账通互联网科技
有木互联网科技
上海卓越科技 互联网
南通创西澳互联网科技有限公司
互联网科技和医药行业
互联网的黑科技实验室