上一篇:
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声明
语法:
ListtList = new List ();
注:
实例:
ListstringList = new List (); List classmateList = new List ();
2、List初值
可以在声明一个List的同时,给出初值。
ListstringList = new List () { "Tom", "Jerry", "!" }; List classmateList = new List () { new Classmate("1", "Tom"), new Classmate("2", "Jerry") };
3、数组array转为List
语法:
ListtList =new List (数据集);
实例:
string[] stringArray = { "Tom", "Jerry", "!" }; ListstringList = 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(); }
实例(制作同学花名册):
ListclassmateList = new List (); //(因个人隐私需要,此处又省略。。。) StringBuilder sb = new StringBuilder(); 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 + " "); sb.AppendLine("" + mo.Nickname + " "); sb.AppendLine("" + mo.Name + " "); sb.AppendLine("" + mo.Mobile + " "); sb.AppendLine("" + mo.Email + " "); sb.AppendLine("
4、添加一个或一组数据
语法:List.Add(T item)
语法:List.AddRange(数据集合)
注意:狗尾续貂,数据添加在尾部;
实例:
ListstringList = 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);
实例:
ListstringList = new List (); stringList.Insert(1, "House");
6、删除元素
① 按数据删除
语法:List.Remove(T item)
② 按位置删除
语法:List.RemoveAt(int index);
③ 批量删除
语法:List.RemoveRange(int index, int count);
④ 按条件删除
语法:List.RemoveAll(Predicate
方法:删除满足条件的所有元素。
实例:
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
});
实例(正序):
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
② List.FindAll方法:检索满足条件的所有元素;
语法:public List
③ List.Where方法:检索满足条件的所有元素;(类似FindAll)。
语法:public List
④ List.FindLast 方法:检索满足条件的最后一个元素;
语法:public T FindLast(Predicate
实例(推荐使用Lamda表达式):
ListsomeClassmateList = 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
一般先排序,再提取!
——————————————————————
POWER BY 315SOFT.COM &
TRUFFER.CN
下一篇:
C#,入门教程(21)——命名空间(namespace)与程序结构的基础知识https://blog.csdn.net/beijinghorn/article/details/124140653
猜你喜欢
- 16天前(零碳中国·绿色投资蓝皮书)中国"零碳"差旅之路暨"绿色低碳酒店"标准研究项目成果发布会召开
- 16天前(三亚海棠湾君悦度假酒店)三亚海棠湾君悦酒店暑期夏令营悦趣海岛游招募中
- 16天前(万豪酒店 珠海)万豪酒店品牌启航珠海金湾,续写大湾区拓展新篇
- 16天前(东北地区全域旅游)东北三省一区宣传贯彻研学旅游行业标准
- 16天前(曼谷丽思卡尔顿公寓价格)曼谷丽思卡尔顿酒店盛大启幕,开创泰国奢华雅致新纪元
- 16天前(希尔顿集团2021年筹建的酒店)希尔顿集团两大重点项目亮相第四届上海旅游投资促进大会
- 16天前(夏日纵享 邂逅双面姑苏是哪一集)夏日纵享 邂逅双面姑苏
- 16天前(世茂海峡大厦多高)巴西地产高管齐聚厦门世茂海峡大厦 共探超高层建筑锻造经验
- 16天前(大连aaaaa景区)辽宁大连A级旅游景区应急救护水平整体跃升
- 16天前(殷建祥简历)全国十大牛商解码:殷建祥如何用178天技术突围打造星空梦星空房
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章