C# 中五大集合类及其使用示例
C# 中提供了五种常用的集合类:
主要内容:
- List
:可变大小的列表,可以存储任何类型的元素。 - Dictionary<TKey, TValue>:键值对集合,可以根据键快速查找值。
- HashSet
:不包含重复元素的哈希集合。 - Stack
:后进先出 (LIFO) 的堆栈。 - Queue
:先进先出 (FIFO) 的队列。
其他集合类:
- LinkedList
:双向链表,可以高效地插入和删除元素。 - SortedList<TKey, TValue>:已排序的键值对集合。
- SortedSet
:已排序的哈希集合。 - ReadOnlyCollection
:只读集合。 - ObservableCollection
:可观察的集合,可以监视集合的变化。
1. List :可变大小的强类型列表,可以存储任何类型的元素。
// 创建一个 List<int> 集合
List<int> numbers = new List<int>();
// 添加元素
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
// 遍历集合
foreach (int number in numbers)
{
Console.WriteLine(number);
}
// 访问特定元素
Console.WriteLine(numbers[1]); // 输出:2
// 删除元素
numbers.RemoveAt(1);
// 获取元素数量
Console.WriteLine(numbers.Count); // 输出:2
2. Dictionary<TKey, TValue>:键值对集合,可以根据键快速查找值。
// 创建一个 Dictionary<string, int> 集合
Dictionary<string, int> ages = new Dictionary<string, int>();
// 添加元素
ages.Add("John", 20);
ages.Add("Mary", 25);
// 查找值
Console.WriteLine(ages["John"]); // 输出:20
// 检查键是否存在
Console.WriteLine(ages.ContainsKey("John")); // 输出:True
// 遍历集合
foreach (KeyValuePair<string, int> pair in ages)
{
Console.WriteLine($"{pair.Key} - {pair.Value}");
}
// 删除元素
ages.Remove("John");
// 获取元素数量
Console.WriteLine(ages.Count); // 输出:1
3. HashSet :不包含重复元素的哈希集合。
// 创建一个 HashSet<string> 集合
HashSet<string> names = new HashSet<string>();
// 添加元素
names.Add("John");
names.Add("Mary");
names.Add("John"); // 重复元素不会被添加
// 检查元素是否存在
Console.WriteLine(names.Contains("John")); // 输出:True
// 遍历集合
foreach (string name in names)
{
Console.WriteLine(name);
}
// 获取元素数量
Console.WriteLine(names.Count); // 输出:2
4. Stack :后进先出 (LIFO) 的堆栈。
// 创建一个 Stack<int> 集合
Stack<int> numbers = new Stack<int>();
// 添加元素
numbers.Push(1);
numbers.Push(2);
numbers.Push(3);
// 移除元素
int top = numbers.Pop(); // 3
Console.WriteLine(top);
// 查看栈顶元素
Console.WriteLine(numbers.Peek()); // 2
// 检查栈是否为空
Console.WriteLine(numbers.Count == 0); // 输出:False
5. Queue :先进先出 (FIFO) 的队列。
// 创建一个 Queue<string> 集合
Queue<string> names = new Queue<string>();
// 添加元素
names.Enqueue("John");
names.Enqueue("Mary");
names.Enqueue("David");
// 移除元素
string name = names.Dequeue(); // John
Console.WriteLine(name);
// 查看队列首部元素
Console.WriteLine(names.Peek()); // Mary
// 检查队列是否为空
Console.WriteLine(names.Count == 0); // 输出:False
标签:12,Console,C#,元素,numbers,WriteLine,集合,names
From: https://www.cnblogs.com/cookie2030/p/18050964