一、list集合基本使用
1.添加元素
① 单个元素添加
cs
List<int> list = new List<int>();
for (int i = 0; i < 3; i++)
{
list.Add(i);
}
//输出:0,1,2
②初始化时添加元素
cs
List<int> list2 = new List<int> { 1, 2, 3 };
//输出:0,1,2
③集合中添加集合
cs
List<int> list2 = new List<int> { 1, 2, 3 };
List<int> list3 = new List<int>();
list3.AddRange(list2);
//输出:0,1,2
2.删除元素
①删除集合中匹配项元素,未找到匹配元素,删除失败,返回false
cs
List<int> list = new List<int> { 1, 5, 7, 2, 8 };
bool b= list.Remove(3); // 删除元素 3
Console.WriteLine(b); //false 删除失败
cs
List<int> list = new List<int> { 1, 2, 2, 2, 3 };
bool b = list.Remove(3); // 删除元素 3
Console.WriteLine(b); //true 删除成功 输出:1,2,2,2
②删除集合中指定索引元素,索引从零开始
cs
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
list.RemoveAt(2); // 删除索引为 2 的元素,即元素 3 输出结果:1,2,4,5
③删除集合中一定范围内的元素,索引从零开始
cs
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
list.RemoveRange(0, 2); //删除一定范围内元素,从0开始,删除2个 输出结果:3,4,5
④删除集合中符合条件的数据
cs
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
list.RemoveAll(i => i % 2 == 0); // 删除所有偶数元素,输出结果1,3,5
3.改变集合中的元素 (不重要,不常用)
4.查找集合中的元素
①查找集合中匹配项元素,未找到匹配元素,删除-1,找到返回从0开始的索引
cs
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
int index = list.IndexOf(5); // 返回4 未找到返回-1
②根据指定的条件查找符合条件的所有元素,并返回一个新的List<T>集合
cs
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
List<int> newList = list.FindAll(x => x > 3); // 返回{ 4, 5 }
③使用Contains方法判断元素是否存在
cs
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
bool contains1 = list.Contains(3); // 返回true
bool contains2 = list.Contains(6); // 返回false
二、list集合进阶使用
1、排序
①升序方法1
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
list.Sort(); //对集合内元素进行升序排列 输出:1,2,3,6,7,9
①升序方法2
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
list.Sort((a, b) => a.CompareTo(b)); //对集合内元素进行升序排列 输出:1,2,3,6,7,9
②降序方法1
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
list.Sort(); //先升序
list.Reverse(); //翻转元素,达到降序的目的 输出:9,7,6,3,2,1
②降序方法2
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
list.Sort((x, y) => y.CompareTo(x)); // 降序 输出:9,7,6,3,2,1
2、求集合内全部元素平局值
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
double d= list.Average(); //计算集合内全部数据的平均值
3、求集合内全部元素之和
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
int i= list.Sum(); //计算集合内所有元素之和 输出:28
4、求集合内元素最大值
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
int i= list.Max(); //计算集合内所有元素中最大值 输出:9
5、求集合内元素最小值
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
int i = list.Min(); //计算集合内所有元素中最大值 输出:1
6、集合转数组
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 9, 7 };
int[] ints = list.ToArray(); //list集合转为int类型数组
7、集合内元素去重
cs
List<int> list = new List<int>() { 7, 3, 6, 3, 6, 7 };
list= list.Distinct().ToList(); //list集合内元素去重 输出:7,3,6
8、复制集合中指定索引长度元素至新集合中
cs
List<int> list = new List<int>() { 1, 3, 6, 2, 8, 7 };
list= list.GetRange(0, list.Count-3); //从集合指定索引处,拷贝指定长度数量 存储在新集合中 输出:1,3,6
9、连接两个集合中全部元素生成新集合
cs
List<int> list1 = new List<int> { 1, 2, 3 };
List<int> list2 = new List<int> { 4, 5, 6 };
IEnumerable<int> combinedList = list1.Concat(list2); //连接两个集合 ,生成IEnumerable类型
int[] ints= combinedList.ToArray(); //因IEnumerable类型使用foreach遍历方便,为了使用for循环变量转为数组类型
for (int i = 0; i < ints.Length; i++)
{
Console.WriteLine(ints[i]); //输出连接后的集合元素 输出结果:1,2,3,4,5,6
}