Bir dize dizisini tek bir dizeye dönüştürmek istiyorum.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
"Merhaba Dünya!"
Bir dize dizisini tek bir dizeye dönüştürmek istiyorum.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
"Merhaba Dünya!"
Yanıtlar:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string.Join("", test);
var separator = ", "; string.Join(separator , test);
string.Join(string.Empty, test)yerine, kullanmanızı öneririm empty-paranthesis.
Önceden bahsedilen yöntemin kullanılmasından biraz daha hızlı bir seçenek Concat () yöntemidir. Aynı boş bir ayırıcı parametresi gerektirmez . Misal:Join()Join()
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
dolayısıyla daha hızlıdır.
Concatdaha iyidir, iç kodunda, Joinher öğeden sonra ayırıcı ekleyecektir. Ancak Concatböyle kodlara sahip değil, daha basit ve daha doğrudan Join. Bu ilk cevap.
Deneyin:
String.Join("", test);
iki öğeyi birleştiren bir dize döndürmelidir. "", dizgilerin ayırıcı olmadan birleştirilmesini istediğinizi belirtir.
"Hello "zaten bir boşluk içeriyordu . Alan zaten orada olmasaydı, o zaman doğru olurdunuz ve " "ayırıcı olarak kullanmak daha mantıklı olurdu.
İhtiyacınız olan şey basit bir string.Concat () yöntemidir.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Ayırıcı (boşluk, virgül vb.) De eklemeniz gerekiyorsa, string.Join () kullanılmalıdır.
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Bunu, string.Join () öğesinin hundered öğelerinden oluşan bir dize dizisinde gerçekleştirmeniz, performans bakış açısından daha iyidir. Ayırıcı olarak "" (boş) bir bağımsız değişken verin. StringBuilder performans uğruna da kullanılabilir, ancak kodu biraz daha uzatacaktır.
Concatve birleştirilecek 4 veya daha az dizeniz varsa Joindaha hızlıdır StringBuilder.
Aggregate aynı zamanda kullanılabilir.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Joininşa edilen ekstra ekstra dizeler nedeniyle uygulamak için son derece boşa giden bir yöntemdir . İçin uygun varyant için lütfen stackoverflow.com/questions/217805/… adresini okuyun Aggregate.
string ConvertStringArrayToString(string[] array)
{
//
// Concatenate all the elements into a StringBuilder.
//
StringBuilder strinbuilder = new StringBuilder();
foreach (string value in array)
{
strinbuilder.Append(value);
strinbuilder.Append(' ');
}
return strinbuilder.ToString();
}
string.Join(" ", array)(sizinki dışında bir boşluk ekler). Neden sadece kütüphanede kullanmıyorsunuz?
Kabul edilen cevapta, String.Join kullanımı başına en iyi uygulama değildir. String.Concat, OP ilk öğede bir boşluk bıraktığından kullanılmalıdır: "Merhaba" (boş bir sınırlayıcı kullanmak yerine).
Ancak, OP "Merhaba Dünya!" Sonucunu istediğinden, String.Join hala uygun yöntemdir, ancak sondaki boşluk bunun yerine sınırlayıcıya taşınmalıdır.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);