26 Stimmen

Zuweisung von Werten eines Arrays an separate Variablen in einer Zeile

Kann ich jeden Wert in einem Array zu separaten Variablen in einer Zeile in C# zuweisen? Hier ist ein Beispiel in Ruby-Code von dem, was ich will:

irb(main):001:0> str1, str2 = ["hey", "now"]
=> ["hey", "now"]
irb(main):002:0> str1
=> "hey"
irb(main):003:0> str2
=> "now"

Ich bin nicht sicher, ob das, was ich will, in C# möglich ist.

Edit : Für diejenigen, die vorschlagen, dass ich die Zeichenketten "hey" und "now" einfach Variablen zuweise, ist das nicht das, was ich will. Stellen Sie sich das Folgende vor:

irb(main):004:0> val1, val2 = get_two_values()
=> ["hey", "now"]
irb(main):005:0> val1
=> "hey"
irb(main):006:0> val2
=> "now"

Nun ist die Tatsache, dass die Methode get_two_values zurückgegebenen Zeichenketten "hey" und "now" ist willkürlich. Es können zwei beliebige Werte zurückgegeben werden, die nicht einmal Zeichenketten sein müssen.

4 Stimmen

Wow, hässlich und verwirrend. Erinnert mich an mein letztes Date.

3 Stimmen

@Will: Really? Ich denke, es ist schön und prägnant, aber trotzdem klar und lesbar. Ich mag die Funktion in Python sehr und verwende sie häufig.

1 Stimmen

Aus Sicht von C# auf jeden Fall. Es sieht so aus, als würden Sie einen Verweis auf ein einzelnes Array zwei verschiedenen Variablen zuweisen... wie str1 = new string[] {"one", "two"}; str2 = str1; Also ist es für C#-Entwickler sofort verwirrend. Der hässliche Teil war nur, damit ich den Witz unterbringen konnte.

2voto

Illuminati Punkte 4381

Sie können benannte Tupel verwenden mit C# 7 jetzt.

{
  (string part1, string part2) = Deconstruct(new string[]{"hey","now"});
}

public (string, string) Deconstruct(string[] parts)
{
   return (parts[0], parts[1]);
}

1voto

sepp2k Punkte 352762

Ich bin nicht sicher, ob das, was ich will in C# möglich ist.

Das ist es nicht.

0voto

Ron Warholic Punkte 9894

Nein, aber Sie können ein Array von Strings initialisieren:

string[] strings = new string[] {"hey", "now"};

Obwohl das für Sie wahrscheinlich nicht sehr nützlich ist. Offen gesagt ist es nicht schwer, sie auf zwei Zeilen zu setzen:

string str1 = "hey";
string str2 = "now";

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X