小工具知识网

当前位置: 首页 > 行业知识 > C#,入门教程(20)——列表(List)的基础知识

行业知识

C#,入门教程(20)——列表(List)的基础知识

2026-11-08 00:11:26 来源:互联网转载

上一���:

C#,入门教程(19)——循环语句(for,while,foreach)的基础知识https://blog.csdn.net/beijinghorn/article/details/124060844

List顾名思义就是数据列表,区别于数据数组(array)。

List比数组提供强大得多!多!多!多!的功能,能存储更多!多!多!类型的数据(泛型)!

List是更多数据集合(序表SortedList、链表LinkedList、堆栈Stack、队列Quene及哈希表Hashtable等)的基础。

因而,可以说:无列表,不编程!

一、命名空间

using System.Text;using System.Linq;using System.Collections;using System.Collections.Generic;

如果代码提示错误信息,先添加上面的这些命名空间。

if (入门 List ){    本文就够了。}else if (想精通 List ){    请掌握 Linq 与 Lamda 表达式的基础知识。}else {    关注我!无穷知识传给你!}

二、List的声明(定义)

1、List声明

语法:

List tList = new List();  

注:即为泛型,可以理解为任意的数据类型(数值、类、结构体、object及其他数据体)。

实例:

List stringList = new List();ListclassmateList = new List();

2、List初值

可以在声明一个List的同时,给出初值。

List stringList = new List() {     "Tom", "Jerry", "!" };List classmateList = new List() {    new Classmate("1", "Tom"),     new Classmate("2", "Jerry")};

3、数组array转为List

语法:

List tList =new List (数据集);

实例:

string[] stringArray = {     "Tom", "Jerry", "!"  };List stringList = new List(stringArray);//或者(Linq方法):List stringList = stringArray.ToList();//反之:string[] stringArray = stringList.ToArray();

三、List的基础功能与常用操作

1、List的数据总数

语法:int List.Count()

实例:int count = stringList.Count();

2、清空List

语法:void List.Clear() 

实例:stringList.Clear();

必要的时候清空列表是好习惯!

3、List的遍历

语法:

// T的类型与mList声明时一样string result = "";foreach (T element in tList)  {    result += element.ToString();}

实例(制作同学花名册):

List classmateList = new List();//(因个人隐私需要,此处又省略。。。)StringBuilder sb = new StringBuilder();sb.AppendLine("
");sb.AppendLine("");sb.AppendLine("");sb.AppendLine("");sb.AppendLine("");sb.AppendLine("");sb.AppendLine("");sb.AppendLine("");foreach (Classmate mo in classmateList){    sb.AppendLine("");    sb.AppendLine("");    sb.AppendLine("");    sb.AppendLine("");    sb.AppendLine("");    sb.AppendLine("");    sb.AppendLine("");}sb.AppendLine("
序号昵称姓名手机号邮箱
" + mo.Id + "" + mo.Nickname + "" + mo.Name + "" + mo.Mobile + "" + mo.Email + "
");

4、添加一个或一组数据

语法:List.Add(T item)

语法:List.AddRange(数据集合)   

注意:狗尾续貂,数据添加在尾部;

实例:

List stringList = new List();stringList.Add("Tom");//或:string[] stringArray = {     "Tom", "Jerry", "!"  };List firstStringList = new List();firstStringList.AddRange(stringArray);//又或:List secondStringList = new List();//(此处可能省略几句话。。。)stringList.AddRange(secondStringList);

5、按指定位置添加数据

语法: Insert(int index, T item); 

实例:

List stringList = new List();stringList.Insert(1, "House");

6、删除元素

① 按数据删除

语法:List.Remove(T item)

② 按位置删除

语法:List.RemoveAt(int index);   

③ 批量删除

语法:List.RemoveRange(int index, int count);

④ 按条件删除

语法:List.RemoveAll(Predicate match)

方法:删除满足条件的所有元素。

实例:

stringList.Remove("Tom");stringList.RemoveAt(0);stringList.RemoveRange(1, 2);//(Lamda表达式)stringList.RemoveAll(t => t.Id > 10);

7、判断List是否包含某个数据?

语法:List.Contains(T item)   

返回:true 或 false

实例:

string result = "";

if (mList.Contains("Tom"))

{

    result = "Tom is in the list";

}

else

{

    result = "Tom is not in the list";

}

四、List的高级应用

1、List排序

语法:List.Sort()

按数据的默认升序排序;

stringList.Sort();

这个实际上没有什么用处,强烈推荐下面的语法:

语法:

tList.Sort(delegate(T a, T b) {

    return Comparer.Default.Compare(a.Hashcode(), b.Hashcode());

});

实例(正序):

classmateList.Sort(delegate(Classmate a, Classmate b)) {    if(a.Id > b.Id) {        return 1;    }    else {        return -1;    }});//实例(倒序):classmateList.Sort(delegate(Classmate a, Classmate b)) {    if(b.Id > a.Id) {        return 1;    }    else {        return -1;    }});//实例(倒序,简约写法):classmateList.Sort(delegate(Classmate a, Classmate b)) {    return ((b.Id > a.Id) ? 1 : -1);});//或者,实例(倒序,简约写法):classmateList.Sort(delegate(Classmate a, Classmate b)) {    return Comparer.Default.Compare(b.Id, a.Id);});

列表的排序是使用频率非常高的功能,应该熟练掌握!

2、List反转

语法:List.Reverse()

3、List检索与批量检索

① List.Find方法:检索满足条件的第一个元素; 

语法:public List Find(Predicate match);

② List.FindAll方法:检索满足条件的所有元素; 

语法:public List FindAll(Predicate match);

③ List.Where方法:检索满足条件的所有元素;(类似FindAll)。

语法:public List Where(Predicate match);

④ List.FindLast 方法:检索满足条件的最后一个元素; 

语法:public T FindLast(Predicate match);

实例(推荐使用Lamda表达式):

List someClassmateList = classmateList.Find(t => t.Mobile.StartsWith("139"));List someClassmateList = classmateList.FindAll(t => t.Mobile.StartsWith("139"));List someClassmateList = classmateList.Where(t => t.Mobile.StartsWith("139"));List someClassmateList = classmateList.FindLast(t => t.Mobile.StartsWith("139"));

4、List的片段提取

语法:List.Take(int number);

方法:获得前number个数据,构成一个数据子集;

List top3List = classmateList.Take(3);

一般先排序,再提取!

 ——————————————————————

POWER BY 315SOFT.COM &
TRUFFER.CN

下一篇:

 C#,入门教程(21)——命名空间(namespace)与程序结构的基础知识https://blog.csdn.net/beijinghorn/article/details/124140653

上一篇:服务器op怎么圈地指令?

下一篇:服务器怎么多个世界?