ConcurrentDictionary<TKey,TValue>.TryRemove Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
TryRemove(TKey, TValue) |
içinden belirtilen anahtarı içeren değeri kaldırmaya ve döndürmeye ConcurrentDictionary<TKey,TValue>çalışır. |
TryRemove(KeyValuePair<TKey,TValue>) |
Sözlükten bir anahtar ve değer kaldırır. |
TryRemove(TKey, TValue)
- Kaynak:
- ConcurrentDictionary.cs
- Kaynak:
- ConcurrentDictionary.cs
- Kaynak:
- ConcurrentDictionary.cs
içinden belirtilen anahtarı içeren değeri kaldırmaya ve döndürmeye ConcurrentDictionary<TKey,TValue>çalışır.
public:
bool TryRemove(TKey key, [Runtime::InteropServices::Out] TValue % value);
public bool TryRemove (TKey key, out TValue value);
member this.TryRemove : 'Key * 'Value -> bool
Public Function TryRemove (key As TKey, ByRef value As TValue) As Boolean
Parametreler
- key
- TKey
Kaldırılacak ve döndürülecek öğenin anahtarı.
- value
- TValue
Bu yöntem döndürdüğünde, öğesinden ConcurrentDictionary<TKey,TValue>kaldırılan nesneyi veya yoksa key
türün TValue
varsayılan değerini içerir.
Döndürülenler
true
nesne başarıyla kaldırıldıysa; aksi takdirde , false
.
Özel durumlar
key
, null
değeridir.
Örnekler
Aşağıdaki örnekte yönteminin nasıl çağrılacakları gösterilmektedir ConcurrentDictionary<TKey,TValue>.TryRemove :
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.TryRemove(1, out value2))
{
Console.WriteLine("CD.TryRemove() succeeded when it should have failed");
numFailures++;
}
// If nothing went wrong, say so
if (numFailures == 0) Console.WriteLine(" OK!");
}
}
// Demonstrates:
// ConcurrentDictionary<TKey, TValue>.TryAdd()
// ConcurrentDictionary<TKey, TValue>.TryUpdate()
// ConcurrentDictionary<TKey, TValue>.TryRemove()
let mutable numFailures = 0 // for bookkeeping
// Construct an empty dictionary
let cd = ConcurrentDictionary<int, string>()
// This should work
if cd.TryAdd(1, "one") |> not then
printfn "CD.TryAdd() failed when it should have succeeded"
numFailures <- numFailures + 1
// This shouldn't work -- key 1 is already in use
if cd.TryAdd(1, "uno") then
printfn "CD.TryAdd() succeeded when it should have failed"
numFailures <- numFailures + 1
// Now change the value for key 1 from "one" to "uno" -- should work
if cd.TryUpdate(1, "uno", "one") |> not then
printfn "CD.TryUpdate() failed when it should have succeeded"
numFailures <- numFailures + 1
// 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") then
printfn "CD.TryUpdate() succeeded when it should have failed"
numFailures <- numFailures + 1
// Remove key/value for key 1. Should work.
let mutable value1 = ""
if cd.TryRemove(1, &value1) |> not then
printfn "CD.TryRemove() failed when it should have succeeded"
numFailures <- numFailures + 1
// Remove key/value for key 1. Shouldn't work, because I already removed it
let mutable value2 = ""
if cd.TryRemove(1, &value2) then
printfn "CD.TryRemove() succeeded when it should have failed"
numFailures <- numFailures + 1
// If nothing went wrong, say so
if numFailures = 0 then
printfn " OK!"
'Imports System.Collections.Concurrent
Class CD_TryXYZ
' Demonstrates:
' ConcurrentDictionary<TKey, TValue>.TryAdd()
' ConcurrentDictionary<TKey, TValue>.TryUpdate()
' ConcurrentDictionary<TKey, TValue>.TryRemove()
Shared Sub Main()
Dim numFailures As Integer = 0
' for bookkeeping
' Construct an empty dictionary
Dim cd As ConcurrentDictionary(Of Integer, [String]) = New ConcurrentDictionary(Of Integer, String)()
' This should work
If Not cd.TryAdd(1, "one") Then
Console.WriteLine("CD.TryAdd() failed when it should have succeeded")
numFailures += 1
End If
' This shouldn't work -- key 1 is already in use
If cd.TryAdd(1, "uno") Then
Console.WriteLine("CD.TryAdd() succeeded when it should have failed")
numFailures += 1
End If
' Now change the value for key 1 from "one" to "uno" -- should work
If Not cd.TryUpdate(1, "uno", "one") Then
Console.WriteLine("CD.TryUpdate() failed when it should have succeeded")
numFailures += 1
End If
' 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") Then
Console.WriteLine("CD.TryUpdate() succeeded when it should have failed")
numFailures += 1
End If
' Remove key/value for key 1. Should work.
Dim value1 As String = ""
If Not cd.TryRemove(1, value1) Then
Console.WriteLine("CD.TryRemove() failed when it should have succeeded")
numFailures += 1
End If
' Remove key/value for key 1. Shouldn't work, because I already removed it
Dim value2 As String = ""
If cd.TryRemove(1, value2) Then
Console.WriteLine("CD.TryRemove() succeeded when it should have failed")
numFailures += 1
End If
' If nothing went wrong, say so
If numFailures = 0 Then
Console.WriteLine(" OK!")
End If
End Sub
End Class
Ayrıca bkz.
- İş Parçacığı Güvenli Koleksiyonlar
- Nasıl yapılır: Öğeleri Ekleme ve Bir ConcurrentDictionary'den Alma
Şunlara uygulanır
TryRemove(KeyValuePair<TKey,TValue>)
- Kaynak:
- ConcurrentDictionary.cs
- Kaynak:
- ConcurrentDictionary.cs
- Kaynak:
- ConcurrentDictionary.cs
Sözlükten bir anahtar ve değer kaldırır.
public:
bool TryRemove(System::Collections::Generic::KeyValuePair<TKey, TValue> item);
public bool TryRemove (System.Collections.Generic.KeyValuePair<TKey,TValue> item);
member this.TryRemove : System.Collections.Generic.KeyValuePair<'Key, 'Value> -> bool
Public Function TryRemove (item As KeyValuePair(Of TKey, TValue)) As Boolean
Parametreler
Kaldırılacak KeyValuePair<TKey,TValue> anahtarı ve değeri temsil eden.
Döndürülenler
true
tarafından temsil edilen item
anahtar ve değer başarıyla bulunur ve kaldırılırsa; aksi takdirde , false
.
Özel durumlar
Key özelliğidir item
null
.
Açıklamalar
Belirtimli anahtar ve değerin kaldırılması için sözlükteki girişle eşleşmesi gerekir.
Anahtar, sözlüğün karşılaştırıcısı (veya oluşturulduğu sırada sözlüğe hiçbir karşılaştırıcı sağlanmadıysa için TKey
varsayılan karşılaştırıcı) kullanılarak karşılaştırılır. değeri için TValue
varsayılan karşılaştırıcı kullanılarak karşılaştırılır.