2012-11-21 8 views
5

mam tego słownika i krotki skonfigurować w setValue() jak poniżej: -Initialize krotka z pustymi lub zerowych wartościach w 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) 
} 

Próbuję sprowadzaniu krotki w getValue() jak poniżej: -

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

Moje pytanie brzmi: czy jest to właściwy sposób inicjowania krotki podczas pobierania tego samego ze słownika? Czy jest lepszy kod?

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

Inicjowanie krotki nie ma bezpośredniego związku ze słownikiem. Te dwie klasy nie są powiązane. – usr

Odpowiedz

11

Jeśli jest to parametr out, obiekt nie wymaga inicjacji przed użyciem. Powinieneś być w stanie zrobić:

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

To prawda. Jestem z pewnością dumbo. Dzięki :) – rajibdotnet

13

Nie trzeba tworzyć instancji dla parametru out. Po prostu zadeklaruj zmienną lokalną jako Tuple, ale nie przypisuj wartości.

Tuple<string, string> myTyple; 
+0

@TimSchmelter Szczerze czytam to pytanie jako pytanie o najlepszy sposób zdefiniowania zmiennej do użycia w tym scenariuszu. W związku z tym wystarczy zadeklarować. – fsimonazzi

Powiązane problemy