Câu trả lời này cho thấy việc sử dụng LINQ ( Aggregate
) theo yêu cầu trong câu hỏi và không dành cho sử dụng hàng ngày. Bởi vì điều này không sử dụng, StringBuilder
nó sẽ có hiệu suất khủng khiếp cho các chuỗi rất dài. Đối với sử dụng mã thông thường String.Join
như trong câu trả lời khác
Sử dụng các truy vấn tổng hợp như thế này:
string[] words = { "one", "two", "three" };
var res = words.Aggregate(
"", // start with empty string to handle empty list case.
(current, next) => current + ", " + next);
Console.WriteLine(res);
Kết quả này:
, một hai ba
Tổng hợp là một hàm lấy một tập hợp các giá trị và trả về giá trị vô hướng. Các ví dụ từ T-SQL bao gồm min, max và sum. Cả VB và C # đều có hỗ trợ cho tổng hợp. Cả VB và C # đều hỗ trợ tổng hợp dưới dạng phương thức mở rộng. Sử dụng ký hiệu dấu chấm, người ta chỉ cần gọi một phương thức trên một đối tượng IEnumerable .
Hãy nhớ rằng các truy vấn tổng hợp được thực hiện ngay lập tức.
Thêm thông tin - MSDN: Truy vấn tổng hợp
Nếu bạn thực sự muốn sử Aggregate
dụng biến thể sử dụng sử dụng StringBuilder
được đề xuất trong nhận xét của CodeMonkeyKing , đó sẽ là mã giống như thông thường String.Join
bao gồm hiệu năng tốt cho số lượng lớn đối tượng:
var res = words.Aggregate(
new StringBuilder(),
(current, next) => current.Append(current.Length == 0? "" : ", ").Append(next))
.ToString();