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

这篇具有很好参考价值的文章主要介绍了C#,入门教程(20)——列表(List)的基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇:

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

c# list,C#入门教程 Beginner‘s Recipes,c#,入门,教程,List

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<T> tList = new List<T>();  


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

实例:

List<string> stringList = new List<string>();
List<Classmate>classmateList = new List<Classmate>();

2、List初值

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

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

3、数组array转为List

语法:

List<T> tList =new List<T> (数据集);


实例:

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

c# list,C#入门教程 Beginner‘s Recipes,c#,入门,教程,List

三、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<Classmate> classmateList = new List<Classmate>();
//(因个人隐私需要,此处又省略。。。)
StringBuilder sb = new StringBuilder();
sb.AppendLine("<table>");
sb.AppendLine("<tr>");
sb.AppendLine("<td>序号</td>");
sb.AppendLine("<td>昵称</td>");
sb.AppendLine("<td>姓名</td>");
sb.AppendLine("<td>手机号</td>");
sb.AppendLine("<td>邮箱</td>");
sb.AppendLine("</tr>");
foreach (Classmate mo in classmateList)
{
    sb.AppendLine("<tr>");
    sb.AppendLine("<td>" + mo.Id + "</td>");
    sb.AppendLine("<td>" + mo.Nickname + "</td>");
    sb.AppendLine("<td>" + mo.Name + "</td>");
    sb.AppendLine("<td>" + mo.Mobile + "</td>");
    sb.AppendLine("<td>" + mo.Email + "</td>");
    sb.AppendLine("</tr>");
}
sb.AppendLine("</table>");

4、添加一个或一组数据

语法:List.Add(T item)
语法:List.AddRange(数据集合)   
注意:狗尾续貂,数据添加在尾部;

实例:

List<string> stringList = new List<string>();
stringList.Add("Tom");

//或:
string[] stringArray = { 
    "Tom", "Jerry", "!"  
};
List<string> firstStringList = new List<string>();
firstStringList.AddRange(stringArray);

//又或:
List<string> secondStringList = new List<string>();
//(此处可能省略几句话。。。)
stringList.AddRange(secondStringList);

5、按指定位置添加数据

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

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

6、删除元素

① 按数据删除
语法:List.Remove(T item)
② 按位置删除
语法:List.RemoveAt(int index);   
③ 批量删除
语法:List.RemoveRange(int index, int count);
④ 按条件删除
语法:List.RemoveAll(Predicate<T> 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<long>.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<int>.Default.Compare(b.Id, a.Id);
});

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

2、List反转

语法:List.Reverse()

3、List检索与批量检索

① List.Find方法:检索满足条件的第一个元素; 
语法:public List<T> Find(Predicate<T> match);

② List.FindAll方法:检索满足条件的所有元素; 
语法:public List<T> FindAll(Predicate<T> match);

③ List.Where方法:检索满足条件的所有元素;(类似FindAll)。
语法:public List<T> Where(Predicate<T> match);

④ List.FindLast 方法:检索满足条件的最后一个元素; 
语法:public T FindLast(Predicate<T> match);

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

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

4、List的片段提取

语法:List.Take(int number);
方法:获得前number个数据,构成一个数据子集;

List<Classmate> top3List = classmateList.Take(3);

一般先排序,再提取!

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

POWER BY 315SOFT.COM &
TRUFFER.CN

下一篇:

 C#,入门教程(21)——命名空间(namespace)与程序结构的基础知识https://blog.csdn.net/beijinghorn/article/details/124140653文章来源地址https://www.toymoban.com/news/detail-794698.html

到了这里,关于C#,入门教程(20)——列表(List)的基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电脑键盘功能基础知识,快速入门,抓住这份详细教程

    在互联网生活发达的今天,电脑已经成为了学习工作的必备工具。而用来操作电脑的关键,就是我们经常使用的键盘和鼠标。最近有不少的小伙伴来私信小编,希望小编做一个电脑键盘功能基础知识介绍的详细教程。这不,小编应大家要求,跟大家分享一下电脑键盘各个按键

    2024年02月09日
    浏览(46)
  • 【ESP8266教程】零基础入门学用物联网-基础知识篇(太极创客团队)学习笔记

    提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考         NodeMCU上的D2引脚引出ESP82

    2024年04月29日
    浏览(38)
  • LaTeX详细安装教程|LaTeX 基础知识|LaTeX 常用语法|LaTeX 快速入门

    LaTeX 是一种专业的排版系统,主要用于科技文献、学术论文、书籍等的排版。与传统的文字处理软件相比,LaTeX 可以更好地管理大型文字项目,并提供了丰富的数学公式和符号支持。本篇博客将介绍 LaTeX 的基础知识、常用语法以及安装教程。 LaTeX 具有如下特点: 专业的排版

    2024年02月05日
    浏览(84)
  • STC8H系列单片机入门教程之ADC基础知识(四)

    目录 一、A/D转换过程 二、ADC转换流程图 三、采样定理 四、ADC基本参数 4.1、分辨率 4.2、采样速率 4.3、转换时间 4.4、量程  4.5、最低有效位 五、静态参数 5.1、微分非线性 5.2、积分非线性 六、逐次逼近型模数转换器 七、ADC常用分压电路 八、示例代码 ADC即模数转换器,用来

    2024年04月11日
    浏览(46)
  • Python入门教程:掌握for循环、while循环、字符串操作、文件读写与异常处理等基础知识

    在 Python 中,for 循环用于遍历序列(list、tuple、range 对象等)或其他可迭代对象。for 循环的基本语法如下: 其中, 变量 表示每次循环中取出的一个元素, 可迭代对象 表示被遍历的对象。下面是一个 for 循环的例子: 输出结果为: 代码中, fruits 是一个列表, fruit 是当前循

    2024年02月10日
    浏览(50)
  • 快速上手MATLAB:科研、工程、数据分析,MATLAB入门(下)教你基础知识!分享《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》

    1、《MATLAB完全学习手册(视频+课件+代码)》 2、《MATLAB入门》 3、《详解MATLAB在科学计算中的应用》 4、《案例二 MATLAB与Excel交互》 5、《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》 6、《MATLAB常用函数参考 MATLAB函数汇总 精通MATLAB》 7、等等。。。。 前两天,我们在(

    2024年02月07日
    浏览(60)
  • c#入门教程(有一定计算机基础的人看)

    废话不说,有一定基础的人看,如java等程序员 开发语言,为什么要学?主流游戏是用这个开发 c#微软做的,微软做了个.net framework,c#运行在这个之上。windows自带.net framework,但太辣鸡了,只支持windows,效果不好,就没更了,然后微软出了个新的 .net core ,支持linux,windows,m

    2024年02月04日
    浏览(93)
  • JDK20下载+安装+环境配置入门教程(非常详细),从零基础入门到精通,看完这一篇就够了(附安装包)

    软件下载 软件:JDK 版本:20 语言:简体中文 大小:159.60M 安装环境:Win7及以上版本;64位操作系统 硬件要求:CPU@2.0GHz ;内存@4G(或更高) 下载通道①百度网盘丨64位下载链接: https://pan.baidu.com/s/1AbHK3yqFHhlxb1VX1LnJ7g?pwd=6789 提取码:6789 1、 软件介绍 2,切换Windows系统,然后点

    2024年02月08日
    浏览(40)
  • C#入门教程

    一、C#的发展历史 C#是.net开发平台支持的多种语言中的一门编程语言。是Microsoft专门为.net 平台开发的一种新的编程语言,语法类似于C语言。 1998年,Delphi设计的第一个C#语言版本 2002年,发布了第一个C#版本(1.0) 二、C#能干什么 1.Windows窗口应用程序。Microsoft office,Windows外观应

    2024年02月04日
    浏览(67)
  • C# 入门教程

    C#是一个简单的,现代的,通用的,面向对象的编程语言,它是由微软(Microsoft)开发的。 下面列出了C#成为一种广泛应用的专业语言的原因: 现代的、通用的编程语言。 面向对象。 面向组件。 容易学习。 结构化语言。 它产生高效率的程序。 它可以在多种计算机平台上编

    2024年01月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包