自学内容网 自学内容网

4-1-1.C# 数据容器 - List(List 的定义、List 元素的基本操作、List 元素的遍历、List 的常用方法)

List 概述

  1. List<T> 存储的元素是有序的

  2. List<T> 存储的元素是可重复的

  3. List<T> 支持泛型,可以指定存储的元素的类型

  4. List<T> 支持索引,可以通过索引获取或修改元素

  5. List<T> 支持动态大小(有扩容机制),不同于数组的固定大小

  6. List<T> 内部使用数组来存储元素,当数组填满时,会自动分配一个新的、更大的数组,并将现有元素复制到新数组中

  7. List<T> 不是线程安全的,在多线程环境中需要谨慎使用


一、List 的定义

  1. 定义 List
List<int> nums = new List<int>();
List<string> names = new List<string>();
  1. 定义 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 元素的删除
  1. 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
  1. 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
  1. 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 元素的查找
  1. 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
  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)!