在 C# 中,集合类主要分为泛型集合和非泛型集合,常见的集合类有 List<T>
、Dictionary<TKey, TValue>
、HashSet<T>
、Queue<T>
、Stack<T>
等,下面为你详细介绍这些集合类的常用方法
类型 |
添加 |
删除 |
查找 |
属性 |
List |
Add(); Insert(obj, index); |
Remove(obj); RemoveAt(index); clear() |
Contains(obj);IndexOf(obj); |
Count |
Dictionary |
Add(key,val); TryAdd(key,val); |
Remove(key);clear();
|
Contains(key); Contains(val);TryGetValue(key,out val); |
Count |
HashSet |
Add(obj); |
Remove(obj); clear(); |
Contains |
Count |
Queue |
Enqueue(); |
Dequeue(); Peek(); Clear() |
Contains |
Count |
Stack |
Push(); |
Pop(); Peek(); Clear() |
Contains |
Count |
List<T>
是一个动态数组,提供了灵活的元素添加、删除和访问操作
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int>();
// Add:添加元素到列表末尾
numbers.Add(1);
numbers.Add(2);
// Insert:在指定索引位置插入元素
numbers.Insert(1, 3);
// Remove:移除指定元素
numbers.Remove(2);
// RemoveAt:移除指定索引位置的元素
numbers.RemoveAt(0);
// Contains:判断列表是否包含指定元素
bool contains = numbers.Contains(3);
// IndexOf:返回指定元素第一次出现的索引
int index = numbers.IndexOf(3);
// Count:获取列表中的元素数量
int count = numbers.Count;
// Clear:移除列表中的所有元素
numbers.Clear();
}
}
Dictionary<TKey, TValue>
用于存储键值对,通过键快速查找对应的值。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, int> scores = new Dictionary<string, int>();
// Add:添加键值对
scores.Add("Alice", 85);
scores.Add("Bob", 90);
// TryAdd:尝试添加键值对,如果键已存在则不添加
bool added = scores.TryAdd("Alice", 95);
// Remove:移除指定键的键值对
scores.Remove("Bob");
// ContainsKey:判断字典是否包含指定键
bool containsKey = scores.ContainsKey("Alice");
// ContainsValue:判断字典是否包含指定值
bool containsValue = scores.ContainsValue(85);
// TryGetValue:尝试获取指定键对应的值
if (scores.TryGetValue("Alice", out int value))
{
Console.WriteLine($"Alice's score: {value}");
}
// Count:获取字典中的键值对数量
int count = scores.Count;
// Clear:移除字典中的所有键值对
scores.Clear();
}
}
HashSet<T>
用于存储唯一元素的集合,不允许重复元素。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<int> uniqueNumbers = new HashSet<int>();
// Add:添加元素,
uniqueNumbers.Add(1);
uniqueNumbers.Add(2);
// Remove:移除指定元素
uniqueNumbers.Remove(2);
// Contains:判断集合是否包含指定元素
bool contains = uniqueNumbers.Contains(1);
// Count:获取集合中的元素数量
int count = uniqueNumbers.Count;
// Clear:移除集合中的所有元素
uniqueNumbers.Clear();
}
}
Queue<T>
是一个先进先出(FIFO)的集合。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Queue<int> queue = new Queue<int>();
// Enqueue:将元素添加到队列末尾
queue.Enqueue(1);
queue.Enqueue(2);
// Dequeue:移除并返回队列开头的元素
int first = queue.Dequeue();
// Peek:返回队列开头的元素,但不移除
int peeked = queue.Peek();
// Contains:判断队列是否包含指定元素
bool contains = queue.Contains(2);
// Count:获取队列中的元素数量
int count = queue.Count;
// Clear:移除队列中的所有元素
queue.Clear();
}
}
Stack<T>
是一个后进先出(LIFO)的集合。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Stack<int> stack = new Stack<int>();
// Push:将元素压入栈顶
stack.Push(1);
stack.Push(2);
// Pop:移除并返回栈顶元素
int top = stack.Pop();
// Peek:返回栈顶元素,但不移除
int peeked = stack.Peek();
// Contains:判断栈是否包含指定元素
bool contains = stack.Contains(1);
// Count:获取栈中的元素数量
int count = stack.Count;
// Clear:移除栈中的所有元素
stack.Clear();
}
}
以上是 C# 中常见集合类的一些常用方法,这些方法能帮助你高效地操作集合中的元素。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构