2016-04-23 16 views
2

C# Ich verwende eine KeyValuePair als Schlüssel in meinem KeyValuePair. Hier ist mein Problem:Wie setze ich die Werte auf: KeyValuePair <KeyValuePair <String, String>, int>

Wenn ich "KeyValuePair" haben, wäre die Erklärung, wie folgend:

KeyValuePair<String,String> varName = new KeyValuePair<String,String>("String 1","String 2"); 

Wie kann ich es erklären, wenn ich folgende Voraussetzungen erfüllt sein:

KeyValuePair<KeyValuePair<String,String>,int> 

I bin hier in der Syntax so verloren gegangen. Bitte hilf mir!

Vielen Dank!

+0

Geck, welche Sprache .. welcher Code du hast es versucht .. wenn du mir sagen kannst wäre besser ich denke ... – Manish

+0

Sorry, dachte es war klar genug. Meine schlechte, es ist C# –

Antwort

4

Sie haben es ziemlich, aber es ist am einfachsten, es in zwei Initialisierungen zu teilen.

Zunächst initialisieren KeyValuePair<string, string> und verwenden Sie dann, dass zusammen mit einem int die initalise KeyValuePair<KeyValuePair<string, string>, int>:

var pair = new KeyValuePair<string, string>("string 1", "string 2"); 
var varName = new KeyValuePair<KeyValuePair<string, string>, int>(pair, 10); 

Sie können dies erheblich vereinfachen, wenn Sie eine Hilfsmethode wie so schreiben:

public static KeyValuePair<T1, T2> MakeKeyValuePair<T1, T2>(T1 key, T2 value) 
{ 
    return new KeyValuePair<T1, T2>(key, value); 
} 

Mit diesem können Sie stattdessen Folgendes tun:

var pair = MakeKeyValuePair("string 1", "string 2"); 
var varName = MakeKeyValuePair(pair, 10); 

Dies ist viel einfacher zu befolgen, und Sie müssen die Typen nicht explizit angeben.

Oder wenn Sie bevorzugen (ich persönlich nicht diese bevorzugen):

var varName = MakeKeyValuePair(MakeKeyValuePair("string 1", "string 2"), 10); 

Aber wenn Sie wirklich wollen, dass es auf die harte Art und Weise zu tun:

var varName = new KeyValuePair<KeyValuePair<string, string>, int>(
    new KeyValuePair<string, string>("string 1", "string 2"), 
    10); 
+0

Ja, ich dachte, aber warum einfach, wenn ich es auf die harte Tour machen kann. : D Könntest du auf dem Harten helfen, wie man diese beiden Codezeilen zu einem zusammenfügt? –

+0

Und ohne zusätzliche Methoden: 'new KeyValuePair , int> (neuer KeyValuePair (" String 1 "," String 2 "), 42)'. – IllidanS4

+0

@ КристиянКостадинов Sicher, siehe meine neueste Bearbeitung. :) \t Хорошего дня! –

Verwandte Themen