2012-11-21 6 views
5

Ho questo dizionario e tuple istituito nel SetValue() come di seguito: -Inizializza tuple con valori vuoti o nulli in C#

var myDict = new Dictionary<string, Tuple<string, string>>(); 

private void SetValue() 
{ 
    var myTuple1= Tuple.Create("ABC", "123"); 
    var myTuple2= Tuple.Create("DEF", "456"); 
    myDict.Add("One", myTuple1) 
    myDict.Add("Two", myTuple2) 
} 

Sto cercando di retrive tupla in GetValue() come di seguito: -

private void GetValue() 
{ 
    var myTuple = new Tuple<string, string>("",""); //Is this correct way to initialize tuple 
    if (myDict.TryGetValue(sdsId, out myTuple)) 
    { 
    var x = myTuple.Item1; 
    var y = myTuple.Item2; 
    } 
} 

La mia domanda è se questo è il modo corretto per inizializzare tuple mentre si recupera lo stesso da un dizionario? C'è un codice migliore?

var myTuple = new Tuple<string, string>("",""); 
+0

L'inizializzazione di una tupla non ha alcuna relazione diretta con l'uso di un dizionario. Le due classi non sono correlate. – usr

risposta

11

Se si tratta di un parametro out, l'oggetto non ha bisogno di essere inizializzato prima di essere utilizzato. Dovresti solo essere in grado di fare:

Tuple<string,string> myTuple; 
if (myDict.TryGetValue(sdsId, out myTuple)) 
{ 
    var x = myTuple.Item1; 
    var y = myTuple.Item2; 
} 
+0

Questo è vero. Sono sicuramente un dumbo. Grazie :) – rajibdotnet

13

Non è necessario creare un'istanza per un parametro esterno. Basta dichiarare la variabile locale come Tupla ma non assegnare un valore.

Tuple<string, string> myTyple; 
+0

@TimSchmelter Ho letto onestamente la domanda come chiedendo il modo migliore per definire la variabile da utilizzare in quello scenario. Come tale, aveva solo bisogno di essere dichiarato. – fsimonazzi