Gibt es ein bisschen syntaktischen Zucker für die Vorsilbe Daten am Anfang eines Strings ähnlich wie + = an einen String anfügt?Äquivalent von + = für Präfix
Antwort
Verwenden Sie einfach:
x = "prefix" + x;
Es gibt keine Verbindung Zuweisungsoperator, der dies tut.
Danke Jon (Tony). Ich habe Ihre Kommentare unten auch berücksichtigt. –
sorry = "nope, " + sorry;
Dies sind Verfahren aus dem FCL, die verwendet werden können Strings zu verschmelzen ohne Verkettungsoperator zu verwenden. Die + und + = Operatoren neigen dazu, viel Speicher zu verwenden, wenn sie wiederholt aufgerufen werden (d. H. Eine Schleife), aufgrund der Art der erzeugten Strings und Temp-Strings. (Edit: Wie in Kommentaren darauf hingewiesen, String.Format ist oft keine effiziente Lösung entweder)
Es ist eher eine syntaktische Alternative als Zucker.
string full = String.Format("{0}{1}{2}", "prefix", "main string", "last string");
^Weitere Informationen unter String.Format at MSDN.
Edit: Gerade für zwei Strings:
string result = string.Concat("prefix", "last part");
^Weitere Informationen über String.Concat.
Die mehrfache Verwendung von String.Format wäre genauso problematisch. Die Verwendung von String.Concat ist effizienter als die Verwendung von String.Format, um nur Strings zu verketten. Verkettung in einer Schleife ist wahrscheinlich besser mit einem StringBuilder, nicht String.Format. –
Mit String.Format ist dieser Weg sehr ineffizient. Die CPU-Nutzung ist viel schlechter und es verschwendet immer noch RAM. Sie möchten stattdessen String.Concat: String full = String.Concat ("Präfix", "Hauptstring", "letzter String"). Sie können String.Concat auch an eine Zeichenkette [] übergeben, die Sie in einer Schleife erstellt haben (zB können Sie eine Liste erstellen
Danke Jungs. Sehr hilfreich. –
Man konnte immer eine Erweiterungsmethode schreiben:
public static class StringExtensions{
public static string Prefix(this string str, string prefix){
return prefix + str;
}
}
var newString = "Bean".Prefix("Mr. ");
Es ist nicht syntaktischer Zucker, aber einfach trotzdem. Es ist zwar nicht einfacher als das, was bereits vorgeschlagen wurde.
Es gibt keinen = + Operator in C#, aber zum Glück OO kommt hier zur Rettung:
string value = "Jamie";
value = value.Insert(0, "Hi ");
Für weitere Informationen über String.Insert: http://msdn.microsoft.com/en-us/library/system.string.insert.aspx
Ich würde zustimmen, dass a = b + a scheint die vernünftigste Antwort hier zu sein. Es liest viel besser als mit string.Insert, das ist sicher.
Prost Nick. Ich entschied mich am Ende mit der Methode String.Concat zu gehen. –
- 1. Präfix/Suffix für Klassen
- 2. Semantisches Äquivalent von async für
- 3. Äquivalent von Vlookup für Stata
- 4. Äquivalent von gettimeday() für Windows
- 5. Äquivalent von open_memstream für MSVC
- 6. Präfix für die Schienengeneratoren
- 7. EditText-Präfix für jede Zeile
- 8. Ausgabedateinamen-Präfix für DataFrame.write() ändern
- 9. Pygame-Äquivalent für Ruby?
- 10. OSX-Äquivalent für IP_RECVERR
- 11. Javascript-Äquivalent für scanf()
- 12. SDK-Äquivalent für Html.Action
- 13. Äquivalent von Blochs Effektivem Java für C#
- 14. Jedes Äquivalent von "erweitert" für C#?
- 15. Äquivalent von StringBuilder für Byte-Arrays
- 16. Äquivalent von Math.Min & Math.Max für Termine?
- 17. Äquivalent von% Bewegung für Python-Dateien
- 18. elasticsearch - Äquivalent von "Facetten" "statistisch" für Aggregationen
- 19. Rails Rückruf für das Äquivalent von „after_new“
- 20. Äquivalent msbuild Befehl für Veröffentlichen von VS2008
- 21. Kotlin: Äquivalent von getClass() für KClass
- 22. GUI für Basar, Äquivalent von Gitk
- 23. Äquivalent von -flee-vectorizer-verbose für clang
- 24. Callgrind Äquivalent für Java?
- 25. set_index Äquivalent für Spaltenüberschriften
- 26. Telerik-Äquivalent für DetailView
- 27. jquery Äquivalent für JSON.stringify
- 28. beitreten Äquivalent für subquery
- 29. jquery Äquivalent für getComputedStyle()
- 30. typedef Äquivalent für int
Kann man nicht einfach + = mit den umgekehrten Argumenten aufrufen? Ich bin nicht mit C# vertraut, aber das würde in Java funktionieren. – I82Much
, die post die erste Zeichenfolge an die zweite, nicht die zweite Zeichenfolge in der ersten Zeile voranstellen. Das Ergebnis wäre die gleiche Zeichenfolge, aber in der falschen Variablen –
@ l82Much: Sicher müssten Sie etwas tun wie: s = "Prepend" + = s; – Lazarus