ConcurrentDictionary
和 ConcurrentBag
是 .NET 中提供的线程安全集合类。ConcurrentDictionary
是一个线程安全的键值对集合,而 ConcurrentBag
是一个线程安全的无序集合。
ConcurrentDictionary<TKey, TValue>
:键值对集合。ConcurrentBag<T>
:无序集合。ConcurrentDictionary
中 ConcurrentBag
项目的计数假设我们有一个 ConcurrentDictionary
,其值是 ConcurrentBag
类型,我们需要获取某个键对应的 ConcurrentBag
中的项目数量。
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
// 创建一个 ConcurrentDictionary,其值是 ConcurrentBag<int> 类型
var dictionary = new ConcurrentDictionary<string, ConcurrentBag<int>>();
// 添加一些数据
dictionary.TryAdd("bag1", new ConcurrentBag<int> { 1, 2, 3 });
dictionary.TryAdd("bag2", new ConcurrentBag<int> { 4, 5 });
// 获取 "bag1" 对应的 ConcurrentBag 中的项目数量
if (dictionary.TryGetValue("bag1", out var bag))
{
int count = bag.Count;
Console.WriteLine($"The count of items in 'bag1' is: {count}");
}
else
{
Console.WriteLine("Key 'bag1' not found in the dictionary.");
}
}
}
ConcurrentDictionary
:我们创建了一个 ConcurrentDictionary<string, ConcurrentBag<int>>
,其中键是字符串类型,值是 ConcurrentBag<int>
类型。TryAdd
方法向字典中添加数据。TryGetValue
方法获取指定键对应的 ConcurrentBag
,然后调用 Count
属性获取其中的元素数量。通过上述代码和解释,你应该能够理解如何在 ConcurrentDictionary
中获取 ConcurrentBag
的项目计数。
领取专属 10元无门槛券
手把手带您无忧上云