Tôi muốn chuyển đổi một chuỗi chuỗi thành một chuỗi.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Tôi muốn có một cái gì đó như "Xin chào thế giới!"
Tôi muốn chuyển đổi một chuỗi chuỗi thành một chuỗi.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Tôi muốn có một cái gì đó như "Xin chào thế giới!"
Câu trả lời:
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)
hơn là sử dụng một empty-paranthesis
.
Một tùy chọn nhanh hơn một chút so với việc sử dụng phương thức đã được đề cập là Join()
phương thức Concat () . Nó không yêu cầu một tham số dấu phân cách trống như Join()
vậy. Thí dụ:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
do đó nó có khả năng nhanh hơn.
Concat
là tốt hơn, trong mã bên trong Join
, nó sẽ nối dấu phân cách sau mỗi mục. Nhưng Concat
không có mã như vậy, nó đơn giản và trực tiếp hơn Join
. Đây là câu trả lời thích hợp.
Thử:
String.Join("", test);
sẽ trả về một chuỗi nối hai phần tử lại với nhau. ""
chỉ ra rằng bạn muốn các chuỗi được nối với nhau mà không có bất kỳ dấu phân cách nào.
"Hello "
trong câu hỏi đã có dấu cách. Nếu không có chỗ trống ở đó, thì bạn sẽ chính xác và sử dụng " "
như một dấu phân cách sẽ có ý nghĩa hơn.
Một chuỗi đơn giản.Concat () là những gì bạn cần.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Nếu bạn cũng cần thêm một seperator (dấu cách, dấu phẩy, v.v.) thì nên sử dụng chuỗi.Join ().
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Nếu bạn phải thực hiện điều này trên một mảng chuỗi với vô số phần tử so với chuỗi.Join () thì tốt hơn bằng cách thực hiện quan điểm. Chỉ cần đưa ra một đối số "" (trống) là seperator. StringBuilder cũng có thể được sử dụng vì mục đích hiệu năng, nhưng nó sẽ làm cho mã dài hơn một chút.
Concat
và Join
nhanh hơn StringBuilder
nếu bạn có 4 chuỗi hoặc ít hơn để nối.
Aggregate
cũng có thể được sử dụng cho cùng.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Join
do nhiều chuỗi bổ sung được xây dựng. Vui lòng đọc stackoverflow.com/questions/217805/ cấp để biết biến thể phù hợp của 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)
(ngoại trừ của bạn thêm một không gian dấu). Tại sao không chỉ sử dụng một trong thư viện?
Trong câu trả lời được chấp nhận, String.Join không phải là cách thực hành tốt nhất cho mỗi lần sử dụng. String.Concat nên được sử dụng vì OP đã bao gồm một khoảng trắng ở mục đầu tiên: "Xin chào" (thay vì sử dụng dấu phân cách null).
Tuy nhiên, vì OP đã yêu cầu kết quả "Hello World!", String.Join vẫn là phương thức thích hợp, nhưng thay vào đó, khoảng trắng theo sau nên được chuyển sang dấu phân cách.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);