本文主要是介绍c# Dictionary、ConcurrentDictionary的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Dictionary
Dictionary 用于存储键-值对的集合。如果需要高效地存储键-值对并快速查找,请使用 Dictionary。
注意,键必须是唯一的,值可以重复。
using System;
using System.Collections.Generic;
using System.Linq;class Program
{static void Main(){// 创建一个DictionaryDictionary<string, int> ageDictionary = new Dictionary<string, int>();// 添加元素ageDictionary["Alice"] = 25;ageDictionary["Bob"] = 30;// 检查是否包含键if (ageDictionary.ContainsKey("Alice")){Console.WriteLine("存在键 'Alice'");}// 获取值int aliceAge = ageDictionary["Alice"];Console.WriteLine($"Alice 的年龄是 {aliceAge}");// 修改值ageDictionary["Alice"] = 26;Console.WriteLine($"Alice 的年龄现在是 {ageDictionary["Alice"]}");// 遍历Dictionaryforeach (var pair in ageDictionary){Console.WriteLine($"{pair.Key}: {pair.Value}");}// 删除元素ageDictionary.Remove("Alice");// 获取所有的键或值var keys = ageDictionary.Keys.ToList();var values = ageDictionary.Values.ToList();}
}
ConcurrentDictionary
ConcurrentDictionary 与 Dictionary 类似,但是支持多线程并发操作,适用于并发编程场景。
它提供了线程安全的操作,允许多个线程同时读取和修改数据,而不需要额外的锁定。
using System;
using System;
using System.Collections.Concurrent;class TestConcurrentDictionary
{static void Main(){// 1. 初始化ConcurrentDictionary<string, int> dictionary = new ConcurrentDictionary<string, int>();// 2. 添加或更新元素// 尝试添加一个新的键值对dictionary.TryAdd("key1", 1);// 如果键不存在,则添加键值对;如果键已存在,则更新其值dictionary.AddOrUpdate("key1", 1, (key, oldValue) => oldValue + 1);// 3. 获取元素// 尝试获取与指定键关联的值int value;if (dictionary.TryGetValue("key1", out value)){Console.WriteLine($"Value for key1: {value}");}// 4. 删除元素// 尝试移除指定键的键值对int removedValue;if (dictionary.TryRemove("key1", out removedValue)){Console.WriteLine($"Removed value: {removedValue}");}// 5. 其他方法// 获取与指定键关联的值;如果键不存在,则使用指定的函数或值添加键值对int newValue = dictionary.GetOrAdd("key2", k => 2);Console.WriteLine($"Value for key2: {newValue}");// 6. 遍历foreach (var kvp in dictionary){Console.WriteLine($"{kvp.Key}: {kvp.Value}");}}
}
这篇关于c# Dictionary、ConcurrentDictionary的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!