Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ConcurrentDictionary<TKey, TValue>.TryAdd (TKey, TValue)

.NET Framework (current version)
 

Data di pubblicazione: novembre 2016

Prova ad aggiungere la chiave e il valore specificati a System.Collections.Concurrent.ConcurrentDictionary<TKey, TValue>.

Spazio dei nomi:   System.Collections.Concurrent
Assembly:  mscorlib (in mscorlib.dll)

public bool TryAdd(
	TKey key,
	TValue value
)

Parametri

key
Type: TKey

Chiave dell'elemento da aggiungere.

value
Type: TValue

Valore dell'elemento da aggiungere. Il valore può essere null per i tipi di riferimento.

Valore restituito

Type: System.Boolean

true se la coppia chiave/valore è stata aggiunta correttamente all'oggetto System.Collections.Concurrent.ConcurrentDictionary<TKey, TValue>; false se la chiave esiste già.

Exception Condition
ArgumentNullException

key è null.

OverflowException

Il dizionario contiene già il numero massimo di elementi (MaxValue).

Questo metodo restituisce false se la chiave esiste già. Utilizzare il TryUpdate o AddOrUpdate metodo per aggiornare il valore nel caso in cui la chiave esiste già.

Nell'esempio seguente viene illustrato come chiamare il ConcurrentDictionary<TKey, TValue>.TryAddmetodo:

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!");
        }
}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: