Szukaj…


Uwagi

Jeśli tworzysz ciąg dynamiczny, Dobrą praktyką jest StringBuilder klasy StringBuilder zamiast łączenia ciągów za pomocą metody + lub Concat , ponieważ każdy + / Concat tworzy nowy obiekt ciągu za każdym razem, gdy jest wykonywany.

+ Operator

string s1 = "string1";
string s2 = "string2";

string s3 = s1 + s2; // "string1string2"

Połącz łańcuchy przy użyciu System.Text.StringBuilder

Łączenie ciągów za pomocą StringBuilder może zaoferować przewagę wydajności w porównaniu z prostą łączeniem ciągów za pomocą + . Wynika to ze sposobu przydzielania pamięci. Ciągi są ponownie przydzielane przy każdej konkatenacji, StringBuilders przydziela pamięć w blokach ponownie przydziału, gdy bieżący blok jest wyczerpany. To może mieć ogromną różnicę podczas wykonywania wielu małych konkatenacji.

StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
    sb.Append(i);
    sb.Append(" ");
}
Console.WriteLine(sb.ToString()); // "1 2 3 4 5 "

Wywołania Append() mogą być połączone szeregowo, ponieważ zwraca odwołanie do StringBuilder :

StringBuilder sb = new StringBuilder();
sb.Append("some string ")
  .Append("another string");

Łączenie elementów tablicy ciągów za pomocą String.Join

Za String.Join metody String.Join można połączyć wiele elementów z tablicy ciągów.

string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";

string result = String.Join(separator, value, 1, 2);
Console.WriteLine(result);

Daje następujące wyniki: „pomarańczowy, winogronowy”

W tym przykładzie użyto String.Join(String, String[], Int32, Int32) , która określa indeks początkowy i liczbę na górze separatora i wartości.

Jeśli nie chcesz używać parametru startIndex i liczyć przeciążenia, możesz dołączyć wszystkie podane ciągi znaków. Lubię to:

string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";
string result = String.Join(separator, value);
Console.WriteLine(result);

który wyprodukuje;

jabłko, pomarańcza, winogrono, gruszka

Łączenie dwóch łańcuchów za pomocą $

$ zapewnia łatwą i zwięzłą metodę łączenia wielu ciągów.

var str1 = "text1";
var str2 = " ";
var str3 = "text3";
string result2 = $"{str1}{str2}{str3}"; //"text1 text3"


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow