C# 集合用法介绍

在C#中,集合是一种特殊的数据类型,允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型:

  1. List:它是一个有序的元素列表,用户可以添加、删除或查找元素。
  2. Dictionary:它是一个键值对的集合,用户可以使用键来获取对应的值。
  3. HashSet:它是一组不重复的元素,提供高效的集合操作,如并集、交集等。
  4. Queue:它是一种先进先出(FIFO)的集合,元素从集合的一端添加,并从另一端移除。
  5. Stack:它是一种后进先出(LIFO)的集合,元素从集合的顶部添加和移除。

以下是各种集合的使用示例:

List

csharp 复制代码
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6);  // 添加元素
int firstNumber = numbers[0];  // 获取元素
numbers.Remove(1);  // 删除元素

Dictionary

csharp 复制代码
Dictionary<string, int> ages = new Dictionary<string, int>
{
    {"Alice", 23},
    {"Bob", 27}
};
ages.Add("Charlie", 30);  // 添加元素
int ageOfAlice = ages["Alice"];  // 获取元素
ages.Remove("Alice");  // 删除元素

HashSet

csharp 复制代码
HashSet<int> uniqueNumbers = new HashSet<int> { 1, 2, 3, 4, 5 };
uniqueNumbers.Add(6);  // 添加元素
bool containsFour = uniqueNumbers.Contains(4);  // 检查元素是否存在
uniqueNumbers.Remove(1);  // 删除元素

Queue

csharp 复制代码
Queue<string> queue = new Queue<string>();
queue.Enqueue("Alice");  // 添加元素
queue.Enqueue("Bob");
string firstInLine = queue.Dequeue();  // 移除并获取元素

Stack

csharp 复制代码
Stack<string> stack = new Stack<string>();
stack.Push("Alice");  // 添加元素
stack.Push("Bob");
string topOfStack = stack.Pop();  // 移除并获取元素

以上示例应给出一个关于如何使用C#集合的基本概念。

集合的遍历

C#中所有的集合类都可以使用foreach循环进行遍历。以下是各种集合遍历的示例:

List

csharp 复制代码
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
    Console.WriteLine(number);
}

Dictionary

csharp 复制代码
Dictionary<string, int> ages = new Dictionary<string, int>
{
    {"Alice", 23},
    {"Bob", 27}
};
foreach (KeyValuePair<string, int> entry in ages)
{
    Console.WriteLine($"Name: {entry.Key}, Age: {entry.Value}");
}

HashSet

csharp 复制代码
HashSet<int> uniqueNumbers = new HashSet<int> { 1, 2, 3, 4, 5 };
foreach (int number in uniqueNumbers)
{
    Console.WriteLine(number);
}

Queue

csharp 复制代码
Queue<string> queue = new Queue<string>();
queue.Enqueue("Alice");
queue.Enqueue("Bob");
foreach (string name in queue)
{
    Console.WriteLine(name);
}

Stack

csharp 复制代码
Stack<string> stack = new Stack<string>();
stack.Push("Alice");
stack.Push("Bob");
foreach (string name in stack)
{
    Console.WriteLine(name);
}

以上每个示例都将遍历集合中的每个元素,并使用Console.WriteLine将其打印到控制台。请注意,遍历Dictionary时,我们遍历的是KeyValuePair实例,可以通过KeyValue属性访问键和值。

相关推荐
★YUI★7 小时前
学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
java·学习·游戏·unity·c#
谷宇.8 小时前
【Unity3D实例-功能-拔枪】角色拔枪(二)分割上身和下身
游戏·unity·c#·游戏程序·unity3d·游戏开发·游戏编程
LZQqqqqo8 小时前
C# 中 ArrayList动态数组、List<T>列表与 Dictionary<T Key, T Value>字典的深度对比
windows·c#·list
Dm_dotnet11 小时前
Stylet启动机制详解:从Bootstrap到View显示
c#
三千道应用题13 小时前
WPF&C#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
开发语言·c#·wpf
唐青枫17 小时前
别滥用 Task.Run:C# 异步并发实操指南
c#·.net
我好喜欢你~1 天前
C#---StopWatch类
开发语言·c#
一阵没来由的风1 天前
拒绝造轮子(C#篇)ZLG CAN卡驱动封装应用
c#·can·封装·zlg·基础封装·轮子
一枚小小程序员哈1 天前
基于微信小程序的家教服务平台的设计与实现/基于asp.net/c#的家教服务平台/基于asp.net/c#的家教管理系统
后端·c#·asp.net
Eternity_GQM1 天前
【Word VBA Zotero 引用宏错误分析与改正指南】【解决[21–23]参考文献格式插入超链接问题】
开发语言·c#·word