C#集合和字典
C# 集合和字典
集合(Collections)
集合是C#中常用的一种数据结构,它可以容纳一组具有相同类型的对象。C#中常用的集合类有:
List
List
List<int> numbers = new List<int>();
// 添加元素
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
// 访问元素
int first = numbers[0];
// 删除元素
numbers.Remove(2);
// 遍历集合
foreach (int number in numbers)
{
Console.WriteLine(number);
}
Dictionary<TKey, TValue>
Dictionary<TKey, TValue>是C#中用于存储键值对的集合类。其中,TKey表示键的类型,TValue表示值的类型。下面是Dictionary<TKey, TValue>的一些常用方法:
Dictionary<string, int> ages = new Dictionary<string, int>();
// 添加键值对
ages.Add("Tom", 20);
ages.Add("Jerry", 18);
ages.Add("Mickey", 22);
// 访问值
int tomAge = ages["Tom"];
// 删除键值对
ages.Remove("Jerry");
// 遍历集合
foreach (KeyValuePair<string, int> pair in ages)
{
Console.WriteLine(pair.Key + ": " + pair.Value);
}
字典(Dictionary)
字典是C#中的一种高效的键值对数据结构,它可以快速地查找特定的键,并返回与该键相关联的值。C#中的字典类就是Dictionary<TKey, TValue>。下面是一些关于字典的笔记:
字典的基本操作
Dictionary<string, int> ages = new Dictionary<string, int>();
// 添加键值对
ages.Add("Tom", 20);
ages.Add("Jerry", 18);
ages.Add("Mickey", 22);
// 访问值
int tomAge = ages["Tom"];
// 删除键值对
ages.Remove("Jerry");
// 遍历集合
foreach (KeyValuePair<string, int> pair in ages)
{
Console.WriteLine(pair.Key + ": " + pair.Value);
}
字典的遍历
遍历字典有两种方式,一种是遍历所有的键值对,另一种是遍历所有的键或所有的值
Dictionary<string, int> ages = new Dictionary<string, int>();
// 添加键值对
ages.Add("Tom", 20);
ages.Add("Jerry", 18);
ages.Add("Mickey", 22);
// 遍历键值对
foreach (KeyValuePair<string, int> pair in ages)
{
Console.WriteLine(pair.Key + ": " + pair.Value);
}
// 遍历键
foreach (string key in ages.Keys)
{
Console.WriteLine(key);
}
// 遍历值
foreach (int value in ages.Values)
{
Console.WriteLine(value);
}
字典的性能
字典是一种高效的数据结构,它的查找操作的时间复杂度是O(1),因为它是通过哈希表来实现的。在实际应用中,如果需要频繁地进行查找操作,字典是一种非常适合的数据结构。但是,字典的缺点是占用内存较多,因为它需要维护哈希表。
字典的键和值的类型
字典的键和值可以是任何类型的对象,但是需要注意的是,键必须是唯一的。如果键重复了,会导致后面的键值对覆盖前面的键值对。在使用字典时,需要根据具体的场景选择合适的键和值的类型。
字典的线程安全性
字典在默认情况下是非线程安全的,如果多个线程同时对同一个字典进行修改操作,可能会导致数据的不一致性。为了解决这个问题,C#提供了线程安全的字典类ConcurrentDictionary<TKey, TValue>,它可以安全地被多个线程同时访问和修改。
本文来自博客园,作者:Wo_OD,转载请注明原文链接:https://www.cnblogs.com/WoOD-outPut/p/17202078.html