在C#中,Dictionary<TKey, TValue> 类是一个常用的泛型集合,用于存储键值对。以下是Dictionary的一些基本用法:

1. 创建和初始化:
Dictionary<string, int> ageDictionary = new Dictionary<string, int>();

// 或者使用初始化器
Dictionary<string, string> countryCapitalDictionary = new Dictionary<string, string>
{
    {"USA", "Washington, D.C."},
    {"India", "New Delhi"},
    {"France", "Paris"}
};

2. 添加和访问元素:
// 添加元素
ageDictionary.Add("John", 25);
ageDictionary["Alice"] = 30; // 或者使用索引器

// 访问元素
int johnsAge = ageDictionary["John"];
Console.WriteLine($"John's age is {johnsAge}");

3. 判断是否包含键:
if (ageDictionary.ContainsKey("Bob"))
{
    int bobsAge = ageDictionary["Bob"];
    Console.WriteLine($"Bob's age is {bobsAge}");
}
else
{
    Console.WriteLine("Bob's age is not in the dictionary.");
}

4. 遍历元素:
foreach (var kvp in ageDictionary)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}

// 或者遍历键
foreach (var key in ageDictionary.Keys)
{
    Console.WriteLine($"Key: {key}, Value: {ageDictionary[key]}");
}

// 或者遍历值
foreach (var value in ageDictionary.Values)
{
    Console.WriteLine($"Value: {value}");
}

5. 删除元素:
ageDictionary.Remove("Alice"); // 删除指定键的元素

// 或者使用条件删除
var keysToRemove = ageDictionary.Where(kvp => kvp.Value > 30).Select(kvp => kvp.Key).ToList();
foreach (var key in keysToRemove)
{
    ageDictionary.Remove(key);
}

6. 获取元素个数:
int count = ageDictionary.Count;
Console.WriteLine($"Number of elements in the dictionary: {count}");

7. 使用 TryGetValue 避免 Key 不存在时的异常:
int bobsAge;
if (ageDictionary.TryGetValue("Bob", out bobsAge))
{
    Console.WriteLine($"Bob's age is {bobsAge}");
}
else
{
    Console.WriteLine("Bob's age is not in the dictionary.");
}

这些是Dictionary的一些基本用法。在实际应用中,根据具体需求,你可以根据键获取值、检查字典中是否存在某个键、遍历字典等。Dictionary 提供了高效的键值对检索和插入操作。


转载请注明出处:http://www.zyzy.cn/article/detail/6380/C#