2012-11-21 8 views
5

Ich habe dieses Wörterbuch und Tupeln einrichten in SetValue() wie folgt: -initialisieren Tupel mit leeren oder Null-Werte 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) 
} 

Ich versuche, das Tupel in GetValue() retrive wie folgt: -

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; 
    } 
} 

Meine Frage ist, ob dies der richtige Weg ist, Tupel zu initialisieren, während es aus einem Wörterbuch abgerufen wird? Gibt es einen besseren Code?

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

Initialisierung eines Tupels hat keine direkte Beziehung ein Wörterbuch zu verwenden. Die zwei Klassen sind nicht verwandt. – usr

Antwort

11

Wenn es sich um einen out-Parameter handelt, muss das Objekt vor der Verwendung nicht initialisiert werden. Sie sollten nur in der Lage sein zu tun:

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

Das ist so wahr. Ich bin sicher ein Dumbo. Vielen Dank :) – rajibdotnet

13

Sie müssen keine Instanz für einen out-Parameter erstellen. Erklären Sie die lokale Variable einfach als Tupel, aber weisen Sie keinen Wert zu.

+0

@TimSchmelter Ich lese die Frage ehrlich nach der besten Möglichkeit, die Variable für die Verwendung in diesem Szenario zu definieren. Als solche musste es einfach erklärt werden. – fsimonazzi