C#集合、List<T>、Dictionary等用法

C#是一种面向对象的编程语言,提供了许多内置的集合类型,用于存储和管理数据。

基础类型只能存储一个对象,集合是可以存储多个对象,数组也属于集合一种。


常用集合

Array:数组是固定长度的数据结构,用于存储一组相同类型的元素。

List:列表是一种动态长度的数据结构,用于存储一组可以随时增加或删除元素的数据。

Dictionary:字典是一种键值对的数据结构,用于存储键与值之间的映射关系。


不常用集合

HashSet:HashSet是一种不允许重复元素的数据结构,用于存储一组无序的元素。

Queue:队列是一种先进先出(FIFO)的数据结构,用于存储一组元素,在访问元素时,先加入的元素先被访问。

Stack:栈是一种后进先出(LIFO)的数据结构,用于存储一组元素,在访问元素时,最后加入的元素先被访问。


这些集合类型都是.NET Framework中提供的,可以使用System.Collections命名空间中的相应类型来创建它们。此外,还有许多其他的集合类型,例如LinkedList,SortedList等,可以根据


List集合用法

C# 中的 List 是一种动态数组,它可以在运行时增加或删除元素。下面是一些常用的 List 用法:

创建一个 List:

List<int> numbers = new List<int>();

向 List 中添加元素:

numbers.Add(1);
numbers.Add(2);

从 List 中删除元素:

numbers.Remove(1);

检索 List 中的元素:

int firstNumber = numbers[0];

获取 List 中元素的数量:

int count = numbers.Count;

循环遍历 List 中的元素:

foreach (int number in numbers)
{
    Console.WriteLine(number);
}


Dictionary字典用法

C# 的字典是一种键值对的数据结构,其中键是用来标识数据的唯一标识符,值是与键相关联的数据。在 C# 中,字典类型是 Dictionary<TKey, TValue>。

例如,你可以定义一个字典来存储国家名称和其对应的首都:

Dictionary<string, string> capitals = new Dictionary<string, string>();
capitals.Add("China", "Beijing");
capitals.Add("USA", "Washington D.C.");
capitals.Add("Japan", "Tokyo");

你也可以使用下标语法来访问字典中的值:

string capital = capitals["Japan"]; // "Tokyo"

你可以使用 ContainsKey 方法来检查字典是否包含某个键:

if (capitals.ContainsKey("Japan"))
{
    // 处理键 "Japan" 的值
}

还可以使用 foreach 循环来遍历字典中的所有键值对:

foreach (KeyValuePair<string, string> pair in capitals)
{
    Console.WriteLine("Key: {0}, Value: {1}", pair.Key, pair.Value);
}

字典是一种非常有用的数据结构,可以用于存储和检索大量的键值对数据。


Array数组

C#数组是一组固定大小的、相同类型的数据项的集合。在C#中,数组可以通过使用数组语法或Array类创建。

下面是一些C#数组的基本用法:


声明数组

int[] numbers = new int[5];


访问数组元素:

numbers[0] = 1;


初始化数组

int[] numbers = new int[] { 1, 2, 3, 4, 5 };


获取数组长度

int length = numbers.Length;


遍历数组

通过循环将数组一个一个输出来

//for循环
for (int i = 0; i < numbers.Length; i++)
{
   Console.WriteLine(numbers[i]);
}
//foreach循环
foreach(int item in numbers)
{
   Console.WriteLine(item );
}


这只是C#数组的一些基本用法,如果您想了解更多关于C#数组的内容,请查看C#文档。


集合的嵌套

C#中的集合可以嵌套,这意味着你可以在一个集合中存储另一个集合。这在处理复杂的数据结构时非常有用。

例如,你可以使用一个List<List<int>>来存储一个二维数组。你可以这样定义它:

List<List<int>> matrix = new List<List<int>>();

然后,你可以添加行到该矩阵,每一行都是一个List<int>:

matrix.Add(new List<int> {1, 2, 3});
matrix.Add(new List<int> {4, 5, 6});

此外,你还可以使用字典类型(Dictionary<TKey, TValue>)嵌套,这意味着你可以使用一个字典存储另一个字典。例如:

Dictionary<int, Dictionary<int, string>> dictionary = new Dictionary<int, Dictionary<int, string>>();

这样,你就可以创建一个多维字典,其中每个键都是一个整数,而值是另一个字典,其中键是整数,值是字符串。


果糖网