C#中的List集合有什么作用?如何使用?

来源:Vuejs社区作者:松松建站头衔:草根站长
导读:本期聚焦于小伙伴创作的《C#中的List集合有什么作用?如何使用?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#中的List集合有什么作用?如何使用?》有用,将其分享出去将是对创作者最好的鼓励。

C#中的List集合是System.Collections.Generic命名空间下的泛型集合类型,它允许我们存储同一指定类型的元素,并且支持动态扩容,不需要像数组一样提前固定长度,同时避免了ArrayList存储值类型时的装箱拆箱性能损耗,是日常开发中处理同类型数据集合的首选工具。

C#中的List集合有什么作用?如何使用?

List集合的核心作用

List集合主要解决传统数据容器的痛点,核心作用可以归纳为以下几点:

  • 动态存储同类型数据:不需要预先声明固定长度,元素数量可以随着业务需求动态增长,比数组更灵活。
  • 类型安全:因为是泛型集合,声明时指定元素类型后,只能存储该类型的元素,编译阶段就能发现类型不匹配的错误,比ArrayList更安全。
  • 丰富的内置操作:提供了添加、删除、查找、排序、反转等大量现成方法,不需要开发者自己实现这些基础逻辑,提升开发效率。
  • 支持索引访问:和数组一样可以通过下标直接访问元素,兼顾了数组的访问便利性和集合的灵活性。

List集合的基本使用步骤

1. 引入命名空间与创建初始化

使用List集合前需要先引入泛型集合命名空间,然后声明并初始化集合,初始化时可以指定初始容量,也可以直接添加初始元素。

using System;
using System.Collections.Generic;

namespace ListDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个存储int类型的List,初始容量为5(可选,不指定则使用默认容量)
            List<int> numList = new List<int>(5);
            
            // 创建时直接初始化元素
            List<string> nameList = new List<string>() { "张三", "李四", "王五" };
        }
    }
}

2. 添加元素

List提供了多种添加元素的方法,既可以添加单个元素,也可以添加另一个集合的所有元素,还能在指定索引位置插入元素。

using System;
using System.Collections.Generic;

namespace ListDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numList = new List<int>();
            // 添加单个元素
            numList.Add(10);
            numList.Add(20);
            numList.Add(30);
            
            // 添加另一个集合的所有元素
            List<int> extraList = new List<int>() { 40, 50 };
            numList.AddRange(extraList);
            
            // 在索引1的位置插入元素15
            numList.Insert(1, 15);
            
            // 输出当前所有元素
            foreach (var num in numList)
            {
                Console.WriteLine(num);
            }
            // 输出结果:10 15 20 30 40 50
        }
    }
}

3. 删除元素

删除元素可以根据元素值删除,也可以根据索引删除,还可以删除满足条件的所有元素,或者清空整个集合。

using System;
using System.Collections.Generic;

namespace ListDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numList = new List<int>() { 10, 20, 30, 20, 40 };
            
            // 根据元素值删除第一个匹配的项
            numList.Remove(20); // 删除第一个20,集合变为10,30,20,40
            
            // 根据索引删除元素
            numList.RemoveAt(1); // 删除索引1的元素30,集合变为10,20,40
            
            // 删除满足条件的所有元素,这里删除所有大于15的元素
            numList.RemoveAll(x => x > 15); // 集合变为10
            
            // 清空集合
            numList.Clear();
        }
    }
}

4. 遍历与查询元素

List支持多种遍历方式,也可以通过内置方法查询元素是否存在、获取元素索引等。

using System;
using System.Collections.Generic;

namespace ListDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> nameList = new List<string>() { "张三", "李四", "王五", "赵六" };
            
            // 方式1:for循环遍历,支持通过索引访问
            for (int i = 0; i < nameList.Count; i++)
            {
                Console.WriteLine($"索引{i}的元素是:{nameList[i]}");
            }
            
            // 方式2:foreach遍历
            foreach (string name in nameList)
            {
                Console.WriteLine(name);
            }
            
            // 查询元素是否存在
            bool hasLiSi = nameList.Contains("李四"); // 返回true
            // 查找元素的索引,找不到返回-1
            int index = nameList.IndexOf("王五"); // 返回2
            // 查找满足条件的第一个元素
            string firstLongName = nameList.Find(x => x.Length > 2); // 返回"张三"
        }
    }
}

5. 常用其他方法

List还提供了排序、反转、复制等常用方法,满足更多业务场景需求。

using System;
using System.Collections.Generic;

namespace ListDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numList = new List<int>() { 30, 10, 50, 20, 40 };
            
            // 升序排序
            numList.Sort(); // 集合变为10,20,30,40,50
            
            // 反转集合顺序
            numList.Reverse(); // 集合变为50,40,30,20,10
            
            // 复制集合到数组
            int[] numArray = numList.ToArray();
            
            // 判断集合是否为空
            bool isEmpty = numList.Count == 0;
        }
    }
}

使用List集合的注意事项

在使用List集合时需要注意几个常见问题:

  • 避免在遍历过程中直接修改集合元素数量,比如遍历时调用Remove方法,会导致遍历异常,需要修改的话可以先用临时集合存储要删除的元素,遍历结束后再统一删除。
  • 如果已知集合的大致元素数量,可以在创建时指定初始容量,减少扩容带来的性能损耗,因为List每次扩容都会新建一个更大的数组并复制原有元素。
  • List的索引访问和数组一样是O(1)时间复杂度,但是插入和删除中间元素的时间复杂度是O(n),如果频繁在中间插入删除元素,可能需要考虑使用LinkedList集合。
List集合是C#中最基础也最常用的集合类型,熟练掌握它的使用方法,能大幅提升日常数据处理的开发效率,建议开发者多结合实际场景练习相关操作。

C#List集合泛型集合集合操作数据容器修改时间:2026-07-22 23:03:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。