ConcurrentDictionary<TKey,TValue>.TryRemove Method(TKey,TValue):
Attempts to remove and return the value that has the specified key from the System.Collections.Concurrent.ConcurrentDictionary<TKey,TValue>.
Namespace: System.Collections.Concurrent
Assembly: mscorlib (in mscorlib.dll)
Syntax
public bool TryRemove( TKey key, out TValue value )
Parameters
key
Type: TKey
The key of the element to remove and return.
value
Type: TValue
When this method returns, contains the object removed from the System.Collections.Concurrent.ConcurrentDictionary<TKey,TValue>, or the default value of the TValue type if key does not exist.
Return Value
Type: System.Boolean
true if the object was removed successfully; otherwise, false.
Exception | Condition |
---|---|
ArgumentNullException | key is null. |
The following example shows how to call the ConcurrentDictionary<TKey,TValue>.TryRemove method:
class CD_TryXYZ { // Demonstrates: // ConcurrentDictionary<TKey, TValue>.TryAdd() // ConcurrentDictionary<TKey, TValue>.TryUpdate() // ConcurrentDictionary<TKey, TValue>.TryRemove() static void Main() { int numFailures = 0; // for bookkeeping // Construct an empty dictionary ConcurrentDictionary<int, String> cd = new ConcurrentDictionary<int, string>(); // This should work if (!cd.TryAdd(1, "one")) { Console.WriteLine("CD.TryAdd() failed when it should have succeeded"); numFailures++; } // This shouldn't work -- key 1 is already in use if (cd.TryAdd(1, "uno")) { Console.WriteLine("CD.TryAdd() succeeded when it should have failed"); numFailures++; } // Now change the value for key 1 from "one" to "uno" -- should work if (!cd.TryUpdate(1, "uno", "one")) { Console.WriteLine("CD.TryUpdate() failed when it should have succeeded"); numFailures++; } // Try to change the value for key 1 from "eine" to "one" // -- this shouldn't work, because the current value isn't "eine" if (cd.TryUpdate(1, "one", "eine")) { Console.WriteLine("CD.TryUpdate() succeeded when it should have failed"); numFailures++; } // Remove key/value for key 1. Should work. string value1; if (!cd.TryRemove(1, out value1)) { Console.WriteLine("CD.TryRemove() failed when it should have succeeded"); numFailures++; } // Remove key/value for key 1. Shouldn't work, because I already removed it string value2; if (cd.) { Console.WriteLine("CD.TryRemove() succeeded when it should have failed"); numFailures++; } // If nothing went wrong, say so if (numFailures == 0) Console.WriteLine(" OK!"); } }
Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
ConcurrentDictionary<TKey,TValue> Class
System.Collections.Concurrent Namespace
Thread-Safe Collections
How to: Add and Remove Items from a ConcurrentDictionary
备注:转自https://msdn.microsoft.com/en-us/library/dd287129(v=vs.110).aspx
转载于:https://blog.51cto.com/jiaojusuimu/1880668