在 C# 中,集合(Collection)是一组对象的容器,它们可以存储和操作一组数据,并提供了一组方法来访问和管理这些数据。C# 中提供了多种集合类型,包括数组、列表、字典、集以及队列和栈等数据结构。本文将对集合的常见用法和示例进行详细介绍。
1.数组(Array)
数组是一组具有相同数据类型的元素的集合。数组长度在创建时被指定,并且在其生命周期内不可改变。下面是数组的一些常见用法:
int[] numbers = { 1, 2, 3, 4, 5 };
// 遍历数组
foreach (int num in numbers) {
Console.WriteLine(num);
}
// 获取数组中的最大值
int max = numbers.Max();
// 获取数组中的最小值
int min = numbers.Min();
// 判断数组中是否包含指定值
bool contains = numbers.Contains(3);
2.列表(List)
列表是一种动态数组,长度可以在运行时添加和删除元素。列表提供了大量的方法来操作它们,例如添加、删除和查询。下面是列表的一些常见用法:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// 向列表中添加元素
numbers.Add(6);
// 在指定位置插入元素
numbers.Insert(2, 0);
// 删除指定元素
numbers.Remove(3);
// 获取列表中的元素数量
int count = numbers.Count;
// 获取列表中指定位置的元素
int num = numbers[2];
3.字典(Dictionary)
字典是一种键值对的集合,每个键关联一个值。字典可以按键或值排序,并且提供了大量的方法来处理和查询它们。下面是字典的一些常见用法:
Dictionary<string, int> dict = new Dictionary<string, int> {
{ "apple", 1 },
{ "banana", 2 },
{ "orange", 3 }
};
// 遍历字典
foreach (KeyValuePair<string, int> item in dict) {
Console.WriteLine(item.Key + " - " + item.Value);
}
// 获取字典中指定键的值
int value = dict["apple"];
// 判断字典中是否包含指定的键
bool containsKey = dict.ContainsKey("pear");
// 判断字典中是否包含指定的值
bool containsValue = dict.ContainsValue(2);
4.集合(Set)
集合是一组不包含重复元素的对象的集合。集合提供了大量的方法来处理和查询它们。下面是集合的一些常见用法:
HashSet<int> numbers = new HashSet<int> { 1, 2, 3, 4, 5 };
// 向集合中添加元素
numbers.Add(6);
// 从集合中删除指定元素
numbers.Remove(3);
// 判断集合中是否包含指定元素
bool contains = numbers.Contains(4);
// 获取集合中的元素数量
int count = numbers.Count;
5.栈(Stack)
栈是一种后进先出的数据结构,类似于一个弹出式的盘子堆。栈提供了 push 和 pop 操作来添加和删除元素。下面是栈的一些常见用法:
Stack<string> stack = new Stack<string>();
// 向栈中添加元素
stack.Push("apple");
stack.Push("banana");
stack.Push("orange");
// 从栈中删除元素
string item = stack.Pop();
// 获取栈顶元素而不删除它
string topItem = stack.Peek();
// 判断栈中是否包含元素
bool contains = stack.Contains("banana
7.队列(Queue)
队列是一种先进先出的数据结构,类似于排队等候服务的行列。队列提供了 enqueue 和 dequeue 操作来添加和删除元素。下面是队列的一些常见用法:
Queue<string> queue = new Queue<string>();
// 向队列中添加元素
queue.Enqueue("apple");
queue.Enqueue("banana");
queue.Enqueue("orange");
// 从队列中删除元素
string item = queue.Dequeue();
// 获取队列头元素而不删除它
string topItem = queue.Peek();
// 判断队列中是否包含元素
bool contains = queue.Contains("banana");
8.堆(Heap)
堆是一种特殊的二叉树结构,具有以下特点:
- 每个非叶节点的值都小于或等于其子节点的值。
- 堆总是一棵完整的二叉树,即最底层的节点从左向右连续排列。
C# 中的 heap 是一个优先队列,可以快速找到最大或最小的元素。堆提供了 Add 和 RemoveMax 或 RemoveMin 操作来添加和删除元素。下面是堆的一些常见用法:
Queue<int> heap = new Queue<int>();
// 向堆中添加元素
heap.Enqueue(5);
heap.Enqueue(2);
heap.Enqueue(8);
// 删除堆顶元素
int max = heap.Dequeue();
// 获取堆顶元素而不删除它
int topItem = heap.Peek();
以上是 C# 中的常见集合类型和方法,它们可以帮助我们更轻松地处理和管理数据,提高编程效率。需要注意的是,根据具体的需求选择适当的集合类型和方法可以有效地减少代码复杂度和提高性能