4-1-1.C# 数据容器 - List(List 的定义、List 元素的基本操作、List 元素的遍历、List 的常用方法)
List 概述
-
List<T>
存储的元素是有序的 -
List<T>
存储的元素是可重复的 -
List<T>
支持泛型,可以指定存储的元素的类型 -
List<T>
支持索引,可以通过索引获取或修改元素 -
List<T>
支持动态大小(有扩容机制),不同于数组的固定大小 -
List<T>
内部使用数组来存储元素,当数组填满时,会自动分配一个新的、更大的数组,并将现有元素复制到新数组中 -
List<T>
不是线程安全的,在多线程环境中需要谨慎使用
一、List 的定义
- 定义 List
List<int> nums = new List<int>();
List<string> names = new List<string>();
- 定义 List 并填充一些元素
List<int> nums = new List<int> { 1, 2, 3 };
List<string> names = new List<string> { "tom", "jack" };
二、List 元素的基本操作
1、List 元素的添加
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
2、List 元素的访问
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
Console.WriteLine(nums[0]);
Console.WriteLine(nums[1]);
Console.WriteLine(nums[2]);
# 输出结果
1
2
3
3、List 元素的修改
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
Console.WriteLine(nums[0]);
Console.WriteLine(nums[1]);
Console.WriteLine(nums[2]);
nums[0] = 10;
nums[1] = 20;
nums[2] = 30;
Console.WriteLine(nums[0]);
Console.WriteLine(nums[1]);
Console.WriteLine(nums[2]);
# 输出结果
1
2
3
10
20
30
三、List 元素的遍历
1、 使用 for 循环遍历
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
for (int i = 0; i < nums.Count; i++)
{
Console.WriteLine(nums[i]);
}
# 输出结果
1
2
3
2、使用 foreach 循环遍历
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
foreach (int num in nums)
{
Console.WriteLine(num);
}
# 输出结果
1
2
3
3、使用 ForEach 方法遍历
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
nums.ForEach(num => Console.WriteLine(num));
# 输出结果
1
2
3
四、List 的常用方法
1、List 元素的删除
- List 指定元素删除
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
Console.WriteLine("删除元素之前");
foreach (int num in nums)
{
Console.WriteLine(num);
}
nums.Remove(2);
Console.WriteLine("删除元素之后");
foreach (int num in nums)
{
Console.WriteLine(num);
}
# 输出结果
删除元素之前
1
2
3
删除元素之后
1
3
- List 指定元素删除,会删除 List 中第一个匹配到的指定元素
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
nums.Add(2);
Console.WriteLine("删除元素之前");
foreach (int num in nums)
{
Console.WriteLine(num);
}
nums.Remove(2);
Console.WriteLine("删除元素之后");
foreach (int num in nums)
{
Console.WriteLine(num);
}
删除元素之前
1
2
3
2
删除元素之后
1
3
2
- List 指定索引删除
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
Console.WriteLine("删除元素之前");
foreach (int num in nums)
{
Console.WriteLine(num);
}
nums.RemoveAt(1);
Console.WriteLine("删除元素之后");
foreach (int num in nums)
{
Console.WriteLine(num);
}
# 输出结果
删除元素之前
1
2
3
删除元素之后
1
3
2、List 大小的获取
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
Console.WriteLine(nums.Count);
# 输出结果
3
3、List 元素的查找
- List 元素的查找,找到则返回元素的索引,找不到则返回 -1
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
Console.WriteLine(nums.IndexOf(1));
Console.WriteLine(nums.IndexOf(10));
# 输出结果
0
-1
- List 元素的查找,找到并返回的元素的索引,是第一个匹配到的元素的索引
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
nums.Add(1);
Console.WriteLine(nums.IndexOf(1));
# 输出结果
0
4、List 元素的清空
List<int> nums = new List<int>();
nums.Add(1);
nums.Add(2);
nums.Add(3);
Console.WriteLine("清空 List 之前");
foreach (int num in nums)
{
Console.WriteLine(num);
}
nums.Clear();
Console.WriteLine("清空 List 之后");
foreach (int num in nums)
{
Console.WriteLine(num);
}
# 输出结果
清空 List 之前
1
2
3
清空 List 之后
原文地址:https://blog.csdn.net/weixin_52173250/article/details/143613588
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!