2008-12-19 28 views
43

Đóng bản sao chính xác là this question.Phương pháp ngắn nhất để chuyển đổi mảng thành chuỗi trong C#/LINQ

Tôi có một mảng/danh sách các phần tử. Tôi muốn chuyển đổi nó thành một chuỗi, được phân tách bằng dấu phân tách tùy chỉnh. Ví dụ:

[1,2,3,4,5] => "1,2,3,4,5" 

Cách ngắn nhất/tối ưu nhất để làm điều này trong C# là gì?

Tôi luôn thực hiện việc này bằng cách đi xe đạp danh sách và kiểm tra xem phần tử hiện tại có phải là phần tử cuối cùng trước khi thêm dấu phân cách hay không.

for(int i=0; i<arr.Length; ++i) 
{ 
    str += arr[i].ToString(); 
    if(i<arr.Length) 
     str += ","; 
} 

Có chức năng LINQ nào có thể giúp tôi viết ít mã hơn không?

Trả lời

134
String.Join(",", arr.Select(p=>p.ToString()).ToArray()) 
+6

Bạn không thực sự cần những ToArray() ... string.Join có thể mất một IEnumerable, và IEnumerable.Select trả về một IEnumerable. – neminem

+7

@neminem 'string.Join (chuỗi, IEnumerable )' không tồn tại trong năm 2008. –

36
String.Join(",", array.Select(o => o.ToString()).ToArray()); 
Các vấn đề liên quan