Saya ingin mengubah array string menjadi string tunggal.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Saya ingin memiliki sesuatu seperti "Hello World!"
Saya ingin mengubah array string menjadi string tunggal.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Saya ingin memiliki sesuatu seperti "Hello World!"
Jawaban:
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)
daripada menggunakan empty-paranthesis
.
Opsi yang sedikit lebih cepat daripada menggunakan penggunaan metode yang telah disebutkan Join()
adalah metode Concat () . Itu tidak memerlukan parameter pembatas kosong seperti Join()
halnya. Contoh:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
karenanya kemungkinan lebih cepat.
Concat
lebih baik, dalam kode bagian dalam Join
, itu akan menambahkan pemisah setelah setiap item. Tetapi Concat
tidak memiliki kode seperti itu, lebih sederhana dan lebih langsung daripada Join
. Ini adalah jawaban pertama.
Mencoba:
String.Join("", test);
yang harus mengembalikan string yang menyatukan dua elemen. ""
menunjukkan bahwa Anda ingin string digabungkan bersama tanpa pemisah apa pun.
"Hello "
dalam pertanyaan sudah memiliki ruang tambahan. Jika ruang itu belum ada di sana, maka Anda akan benar, dan menggunakan " "
sebagai pemisah akan lebih masuk akal.
String.Compat () sederhana adalah yang Anda butuhkan.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Jika Anda juga perlu menambahkan seperator (spasi, koma dll) maka, string.Join () harus digunakan.
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Jika Anda harus melakukan ini pada array string dengan elemen hundered daripada string.Join () lebih baik dengan titik kinerja performace. Berikan argumen "" (kosong) sebagai pemisah. StringBuilder juga dapat digunakan untuk kinerja, tetapi akan membuat kode sedikit lebih lama.
Concat
dan Join
lebih cepat daripada StringBuilder
jika Anda memiliki 4 string atau kurang untuk digabungkan.
Aggregate
bisa juga digunakan untuk hal yang sama.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Join
karena beberapa string ekstra dibangun. Silakan baca stackoverflow.com/questions/217805/… untuk varian yang tepat 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)
(kecuali Anda menambahkan ruang tambahan). Mengapa tidak menggunakan saja yang ada di perpustakaan?
Saya menggunakan cara ini untuk membuat proyek saya lebih cepat:
RichTextBox rcbCatalyst = new RichTextBox()
{
Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();
return text;
RichTextBox.Text akan secara otomatis mengubah array Anda menjadi string multiline!
Dalam jawaban yang diterima, String.Join bukan praktik terbaik per penggunaannya. String.Compat seharusnya digunakan karena OP menyertakan spasi tambahan di item pertama: "Halo" (alih-alih menggunakan pembatas nol).
Namun, karena OP meminta hasil "Hello World!", String.Join masih merupakan metode yang tepat, tetapi spasi spasi tambahan harus dipindahkan ke pembatas sebagai gantinya.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);