Bạn có thể sử dụng phương thức string.Join
để thực hiện điều gì đó như string.Join(",", o.Number, o.Id, o.whatever, ...)
.
chỉnh sửa: Như digEmAll đã nói, string.Join nhanh hơn StringBuilder. Họ sử dụng một thực hiện bên ngoài cho chuỗi.Join.
Profiling mã (tất nhiên chạy trong phiên bản không có ký hiệu debug):
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
string r;
int iter = 10000;
string[] values = { "a", "b", "c", "d", "a little bit longer please", "one more time" };
sw.Restart();
for (int i = 0; i < iter; i++)
r = Program.StringJoin(",", values);
sw.Stop();
Console.WriteLine("string.Join ({0} times): {1}ms", iter, sw.ElapsedMilliseconds);
sw.Restart();
for (int i = 0; i < iter; i++)
r = Program.StringBuilderAppend(",", values);
sw.Stop();
Console.WriteLine("StringBuilder.Append ({0} times): {1}ms", iter, sw.ElapsedMilliseconds);
Console.ReadLine();
}
static string StringJoin(string seperator, params string[] values)
{
return string.Join(seperator, values);
}
static string StringBuilderAppend(string seperator, params string[] values)
{
StringBuilder builder = new StringBuilder();
builder.Append(values[0]);
for (int i = 1; i < values.Length; i++)
{
builder.Append(seperator);
builder.Append(values[i]);
}
return builder.ToString();
}
}
string.Join mất 2ms trên máy tính và StringBuilder.Append 5ms tôi. Vì vậy, có sự khác biệt đáng chú ý. Nhờ digAmAll cho gợi ý.
Nguồn
2011-02-03 09:04:40
Nói chung nó được coi là kém hiệu quả hơn để nối chuỗi bằng ký hiệu '+'. Nó tạo ra nhiều vật thể hơn để thu gom rác thải. –
[Phân cách bằng dấu phẩy thủ công so với lớp CommaDelimitedStringCollection mát mẻ!] (Http://izlooite.blogspot.com/2009/12/manual-comma-separation-versus-cool.html) –