C#中的List是一种动态数组(Dynamic Array)数据结构,它可以自动扩展大小。与传统数组(静态数组)不同,静态数组具有固定的长度,不支持动态增加或减少元素。而List可以根据需要添加或删除元素,使其更灵活。
一、C#中List是什么数据结构
C#中的List是一种动态数组(Dynamic Array)数据结构,它可以自动扩展大小。与传统数组(静态数组)不同,静态数组具有固定的长度,不支持动态增加或减少元素。而List可以根据需要添加或删除元素,使其更灵活。
List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List集合允许加入重复元素,因为它可以通过索引来访问指定位置的集合元素。List集合默认按元素的添加顺序设置元素的索引 。List的长度可以根据需要动态增加或缩小,并且可以通过索引来访问List的内部元素,还可以对List进行排序和搜索等操作。List中的元素可以是任何类型,包括基本数据类型和自定义对象等。
在C#中,List类是System.Collections.Generic命名空间提供的一个泛型集合类。使用List类,我们可以轻松地创建和操作动态数组,这使得List成为C#中常用的集合类型之一。
二、C#简介
C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的优选语言。
C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
三、List的相关用法
1、初始化
List<int> intList = new List<int>();
Console.WriteLine("intList 的默认容量为:{0}", intList.Capacity);
intList.Add(1);
intList.Add(2);
intList.Add(3);
foreach(var value in intList)
{
Console.Write(value + " ");
}
Console.WriteLine();
Console.WriteLine("intList 的当前容量为:{0}", intList.Capacity);
/*
intList 的默认容量为:0
1 2 3
intList 的当前容量为:4
*/
2、添加元素
List<string> strList = new List<string>();
strList.Add("a");
strList.Add("b");
strList.Add("c");
foreach(var element in strList)
{
Console.Write(element + " ");
}
// a b c
3、移除所有元素
List<bool> boolList = new List<bool> {false, true, false};
Console.WriteLine("intList 中的元素数量为:{0}", boolList.Count); // intList 中的元素数量为:3
boolList.Clear();
Console.WriteLine("intList 中的元素数量为:{0}", boolList.Count); // intList 中的元素数量为:0
Console.WriteLine("intList 的当前容量为:{0}", boolList.Capacity); // intList 的当前容量为:4
4、插入元素
List<int> intList = new List<int> {1, 2, 3};
intList.Insert(1, 666);
intList.Insert(2, 888);
foreach(var element in intList)
{
Console.Write(element + " ");
}
// 1 666 888 2 3
5、排序
List<int> intList = new List<int> {4, 5, 1, 3, 2};
intList.Sort(); //默认升序
foreach(var element in intList)
{
Console.Write(element + " ");
}
// 1 2 3 4 5
延伸阅读1:C#的设计目标
C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言,此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。此种语言为在分布式环境中的开发提供适用的组件开发应用。