C#学习之列表
来源:互联网 发布:linux 解包 编辑:程序博客网 时间:2024/05/19 19:31
.NET FrameWork 为动态列表提供了泛型类List<T>。这个类实现了IList、ICollection、IEnumerable、IList<T>、ICollection<T> 和IEnumerable<T>接口。
创建列表
调用默认的构造函数,就可以创建列表对象,在泛型类List<T>中,必须为声明为列表的值指定类型。元素添加到列表中后,列表的容量就会扩大为可接纳4个元素,如果添加了第5个元素,列表的大小就重新设置为包含8个元素,如果8个元素还不够,列表的大小重新设置为保函16个元素,每次都会将列表的容量重新设置为原来的2倍。
例如 var intList = new List<int >();
var racers = new List<Racer>();
如果列表的容量改变了,整个集合就要重新分配到一个新的内存块中,使用Capacity属性可以设置和获取集合的容量。(intList.Capacity=20;)在重新分配内存时,是通过创建一个新数组,Array.Copy()方法将旧数组中的元素复制到新数组中。
还可以通过集合初始值设定项给集合赋值。集合初始值设定项的语法类似于数组的初始值的设定项,使用集合初始值设定项,可以在初始化集合时,在花括号中给集合赋值:集合的初始值设定
var intList = new List<int>(){1,2};
var stringList = new List<string>(){"one","two"};
实现IList和IList<T>接口的所有类都提供了一个索引器,所以可以使用索引器,方法是通过传递元素号来访问元素。第一个元素的索引值是0。可以通过for循环来访问元素:添加元素
使用Add()方法可以给列表添加元素。例如var intLIst = new List<int>();intList.Add(1);intList.Add(2);这样列表中就添加两个值1和2。使用List<T>类的AddRange()方法,可以一次给集合添加多个元素。例如:racers.AddRange(new Racer{new Racer(14,"nike","lauda","Austria",25),new Racer(21,"addias","prost","France",41)});插入元素
使用Insert()方法可以在指定的位置插入元素:racers.Insert(1,new Racer(6,"phil","Hill","USA",3));使用InsertRange()提供了插入大量元素的功能,类似于前面的AddRange()方法。访问元素
for(int i =0;i<racers.Count;i++)
{
Console.WriteLine(racers[i]);
}
同时还可以通过foreach语句,来遍历整个列表。
foreach(Racer racer in racers)
{
Console.WriteLine(racer.ToString());
}
删除元素可以利用索引,也可以传递要删除的元素。利用索引删除元素的情况,可以使用RemoveAt()方法,例如:racers.RemoveAt(3);也可以直接将对象传递给Remove方法(),来删除这个元素,即racers.Remove(racer);如果要删除多个元素,可以使用RemoveRange()方法,当中包含两个参数,第一个参数指定了开始删除的元素索引,第二个参数指定了要删除元素的个数,例如:racers.RemoveRange(3,4);要从集合中删除所有元素,可以使用RemoveAll()的方法。删除元素
0 0
- C#学习之列表
- C#学习文章列表
- C#学习之获取某个文件下的目录列表及子目录列表
- c#之有序列表读书笔记
- CSS学习之 列表
- bootstrap学习之列表
- python学习之列表
- Visual C#2010学习笔记四之列表选择控件的使用
- C#编程学习之ListView控件属性详解以及如何向列表插入数据
- HTML学习之有序列表、无序列表和自定义列表
- Python学习笔记之列表
- [Python]学习笔记之列表
- android 控件学习之列表
- Erlang学习之列表推导
- Python学习之语句、列表
- Tcl学习之--列表|字典
- Python学习之列表排序
- Python学习笔记之列表
- 自定义竖状字母条
- 【深度优先搜索算法】
- 01____实现多线程的方式
- Poj 2386 Lake Counting
- "=="和equals方法究竟有什么区别?
- C#学习之列表
- 谷歌-SEO
- windows系统下openssl的编译
- ubuntu 13.1o 使用root帐号登录X
- 基于插件开发的Android实现流程
- RFT中发送键盘按键 - inputChars inputkeys
- 几种局部刷新技术
- struts2 入门
- 61. Rotate List