C# 如果我不想获取值,如何从ConcurrentDictionary中删除
ConcurrentDictionary似乎只有一个TryRemove方法,但没有Remove方法。为什么会这样C# 如果我不想获取值,如何从ConcurrentDictionary中删除,c#,.net,C#,.net,ConcurrentDictionary似乎只有一个TryRemove方法,但没有Remove方法。为什么会这样 当我想按键删除条目时,我不关心值。如何做到这一点?TryRemove是ConcurrentDictionary的本机方法,而与其他集合一样,您也可以使用Remove方法显式实现ICollection: ConcurrentDictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>
当我想按键删除条目时,我不关心值。如何做到这一点?
TryRemove
是ConcurrentDictionary
的本机方法,而与其他集合一样,您也可以使用Remove
方法显式实现ICollection
:
ConcurrentDictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>.Remove
ConcurrentDictionary.ICollection.Remove
因此
TryRemove
是Remove
的安全替代方案,但您可以在两者之间进行选择。TryRemove
是ConcurrentDictionary
的本机方法,而与其他集合一样,您也可以使用Remove
方法显式实现ICollection
:
ConcurrentDictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>.Remove
ConcurrentDictionary.ICollection.Remove
因此
TryRemove
是Remove
的安全替代方案,但您可以在两者之间进行选择。TryRemove
是ConcurrentDictionary
的本机方法,而与其他集合一样,您也可以使用Remove
方法显式实现ICollection
:
ConcurrentDictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>.Remove
ConcurrentDictionary.ICollection.Remove
因此
TryRemove
是Remove
的安全替代方案,但您可以在两者之间进行选择。TryRemove
是ConcurrentDictionary
的本机方法,而与其他集合一样,您也可以使用Remove
方法显式实现ICollection
:
ConcurrentDictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>.Remove
ConcurrentDictionary.ICollection.Remove
因此
TryRemove
是Remove
的安全替代方案,但您可以在两者之间进行选择。据我所知,ConcurrentDictionary适用于多线程场景
缺少“Remove”和存在“TryRemove”是因为两个不同的线程可能会尝试同时从集合中删除特定项,但由于明显的原因,只有一个线程可以这样做
TryRemove尝试删除该项,但如果未找到该项,则不会发生异常。据我所知,ConcurrentDictionary适用于多线程场景 缺少“Remove”和存在“TryRemove”是因为两个不同的线程可能会尝试同时从集合中删除特定项,但由于明显的原因,只有一个线程可以这样做
TryRemove尝试删除该项,但如果未找到该项,则不会发生异常。据我所知,ConcurrentDictionary适用于多线程场景 缺少“Remove”和存在“TryRemove”是因为两个不同的线程可能会尝试同时从集合中删除特定项,但由于明显的原因,只有一个线程可以这样做
TryRemove尝试删除该项,但如果未找到该项,则不会发生异常。据我所知,ConcurrentDictionary适用于多线程场景 缺少“Remove”和存在“TryRemove”是因为两个不同的线程可能会尝试同时从集合中删除特定项,但由于明显的原因,只有一个线程可以这样做
TryRemove试图删除该项,但如果找不到该项,则不会发生异常。只需删除该值并将其扔掉,就这么简单。@Luaan:但我不明白为什么需要提供一个值。@clamp,你的意思是想知道为什么
TryRemove()
会将删除的值传回,但remove()
没有?您没有提供值,它是一个out参数。这没有什么区别,只是当你不在乎它的价值时,它有点笨重。从字典中删除值已经是一项非常繁重的工作,它是否返回值实际上并不重要。@clamp,那么我会支持sehe的评论。只需删除值并将其扔掉,就这么简单。@Luaan:但我根本不明白为什么需要提供值。@clamp,您的意思是想知道为什么TryRemove()
会将删除的值传回,而Remove()
不会?您没有提供值,它是一个out参数。这没有什么区别,只是当你不在乎它的价值时,它有点笨重。从字典中删除值已经是一项非常繁重的工作,它是否返回值实际上并不重要。@clamp,那么我会支持sehe的评论。只需删除值并将其扔掉,就这么简单。@Luaan:但我根本不明白为什么需要提供值。@clamp,您的意思是想知道为什么TryRemove()
会将删除的值传回,而Remove()
不会?您没有提供值,它是一个out参数。这没有什么区别,只是当你不在乎它的价值时,它有点笨重。从字典中删除值已经是一项非常繁重的工作,它是否返回值实际上并不重要。@clamp,那么我会支持sehe的评论。只需删除值并将其扔掉,就这么简单。@Luaan:但我根本不明白为什么需要提供值。@clamp,您的意思是想知道为什么TryRemove()
会将删除的值传回,而Remove()
不会?您没有提供值,它是一个out参数。这没有什么区别,只是当你不在乎它的价值时,它有点笨重。从字典中删除值已经是一项非常繁重的工作,它是否返回值真的无关紧要。@clamp,那么我会支持sehe的评论。不缺少Remove
,它作为ICollection
的实现而存在,作为集合的常见实现<