C# 集合(Collection)
在 C# 中,集合 (Collection) 是一组对象的容器。集合可用于存储和操作数据。C# 中有多种类型的集合可供使用,每种类型都有其独特的功能和优点。
# 常用集合类型
以下是 C# 中常用的集合类型:
List<T>
: 动态数组,可随时添加或删除元素Dictionary<TKey, TValue>
: 键值对集合,存储键值对并允许使用键来访问值Queue<T>
: 先进先出 (FIFO) 集合Stack<T>
: 后进先出 (LIFO) 集合HashSet<T>
: 不重复元素集合,使用哈希表实现快速查找LinkedList<T>
: 双向链表,可快速插入和删除元素SortedList<TKey, TValue>
: 键值对集合,自动排序ArrayList
: 动态数组,支持任意数据类型
# 集合基础操作
# List
// 创建一个List<T>对象
List<int> list = new List<int>();
// 添加元素到List<T>对象
list.Add(1);
list.Add(2);
list.Add(3);
// 访问List<T>对象元素
int firstElement = list[0];
int lastElement = list[list.Count - 1];
// 遍历List<T>对象
foreach(int element in list)
{
Console.WriteLine(element);
}
// 在List<T>对象中查找元素
int index = list.IndexOf(2);
// 从List<T>对象中删除元素
list.Remove(2);
# Dictionary
// 创建一个Dictionary<TKey, TValue>对象
Dictionary<string, int> dict = new Dictionary<string, int>();
// 添加键值对到Dictionary<TKey, TValue>对象
dict.Add("apple", 1);
dict.Add("banana", 2);
dict.Add("orange", 3);
// 访问Dictionary<TKey, TValue>对象元素
int appleValue = dict["apple"];
// 遍历Dictionary<TKey, TValue>对象
foreach(KeyValuePair<string, int> pair in dict)
{
Console.WriteLine(pair.Key + ": " + pair.Value);
}
// 在Dictionary<TKey, TValue>对象中查找元素
bool hasKey = dict.ContainsKey("apple");
bool hasValue = dict.ContainsValue(1);
// 从Dictionary<TKey, TValue>对象中删除元素
dict.Remove("apple");
# Queue
// 创建一个Queue<T>对象
Queue<string> queue = new Queue<string>();
// 添加元素到Queue<T>对象
queue.Enqueue("apple");
queue.Enqueue("banana");
queue.Enqueue("orange");
// 访问Queue<T>对象元素
string firstElement = queue.Peek();
// 遍历Queue<T>对象
foreach(string element in queue)
{
Console.WriteLine(element);
}
// 从Queue<T>对象中删除元素
string dequeuedElement = queue.Dequeue();
# Stack
// 创建一个Stack<T>对象
Stack<string> stack = new Stack<string>();
// 添加元素到Stack<T>对象
stack.Push("apple");
stack.Push("banana");
stack.Push("orange");
// 访问Stack<T>对象元素
string topElement = stack.Peek();
// 遍历Stack<T>对象
foreach(string element in stack)
{
Console.WriteLine(element);
}
// 从Stack<T>对象中删除元素
string poppedElement = stack.Pop();
```csharp
### HashSet
```csharp
// 创建一个HashSet<T>对象
HashSet<int> set = new HashSet<int>();
// 添加元素到HashSet<T>对象
set.Add(1);
set.Add(2);
set.Add(3);
// 遍历HashSet<T>对象
foreach(int element in set)
{
Console.WriteLine(element);
}
// 在HashSet<T>对象中查找元素
bool containsElement = set.Contains(2);
// 从HashSet<T>对象中删除元素
set.Remove(2);
# LinkedList
// 创建一个LinkedList<T>对象
LinkedList<int> list = new LinkedList<int>();
// 添加元素到LinkedList<T>对象
list.AddFirst(1);
list.AddLast(3);
list.AddAfter(list.First, 2);
// 遍历LinkedList<T>对象
foreach(int element in list)
{
Console.WriteLine(element);
}
// 在LinkedList<T>对象中查找元素
LinkedListNode<int> node = list.Find(2);
// 从LinkedList<T>对象中删除元素
list.Remove(2);
# SortedList
// 创建一个SortedList<TKey, TValue>对象
SortedList<string, int> sortedList = new SortedList<string, int>();
// 添加键值对到SortedList<TKey, TValue>对象
sortedList.Add("orange", 3);
sortedList.Add("apple", 1);
sortedList.Add("banana", 2);
// 访问SortedList<TKey, TValue>对象元素
int appleValue = sortedList["apple"];
// 遍历SortedList<TKey, TValue>对象
foreach(KeyValuePair<string, int> pair in sortedList)
{
Console.WriteLine(pair.Key + ": " + pair.Value);
}
// 从SortedList<TKey, TValue>对象中删除元素
sortedList.Remove("apple");
# ArrayList
// 创建一个ArrayList对象
ArrayList arrayList = new ArrayList();
// 添加元素到ArrayList对象
arrayList.Add(1);
arrayList.Add("hello");
arrayList.Add(true);
// 访问ArrayList对象元素
object firstElement = arrayList[0];
// 遍历ArrayList对象
foreach(object element in arrayList)
{
Console.WriteLine(element);
}
// 从ArrayList对象中删除元素
arrayList.Remove(1);
# 总结
C# 提供了多种类型的集合,可以根据不同的需求选择不同的集合类型。使用集合可以轻松地存储和操作数据,提高代码的可读性和可维护性。在使用集合时,需要注意选择适当的集合类型以及使用集合提供的方法和属性。
上次更新: 2023/04/26, 22:10:06