C# 如果我不想获取值,如何从ConcurrentDictionary中删除

C# 如果我不想获取值,如何从ConcurrentDictionary中删除,c#,.net,C#,.net,ConcurrentDictionary似乎只有一个TryRemove方法,但没有Remove方法。为什么会这样 当我想按键删除条目时,我不关心值。如何做到这一点?TryRemove是ConcurrentDictionary的本机方法,而与其他集合一样,您也可以使用Remove方法显式实现ICollection: ConcurrentDictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>

ConcurrentDictionary似乎只有一个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
的安全替代方案,但您可以在两者之间进行选择。

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
的实现而存在,作为集合的常见实现<