ConcurrentDictionary<TKey,TValue>.TryRemove Method(TKey,TValue):
Attempts to remove and return the value that has the specified key from the .
Namespace:
Assembly: mscorlib (in mscorlib.dll)public bool TryRemove( TKey key, out TValue value)
Parameters
key
Type:
The key of the element to remove and return.
value
Type:
When this method returns, contains the object removed from the , or the default value of the TValue type if key does not exist.
Return Value
Type:
true if the object was removed successfully; otherwise, false.
Exception | Condition |
---|---|
key is null. |
The following example shows how to call the ConcurrentDictionary<TKey,TValue>.TryRemove method:
class CD_TryXYZ{ // Demonstrates: // ConcurrentDictionary.TryAdd() // ConcurrentDictionary .TryUpdate() // ConcurrentDictionary .TryRemove() static void Main() { int numFailures = 0; // for bookkeeping // Construct an empty dictionaryConcurrentDictionary cd = new ConcurrentDictionary (); // 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 FrameworkAvailable since 4.0Portable Class LibrarySupported in: Windows PhoneAvailable since 8.1备注:转自