C# List 转字符串
上次修改时间:2025 年 5 月 14 日
本教程演示了如何在 C# 中将 List 转换为字符串。
要在 C# 中将元素列表转换为单个字符串,我们可以使用 string.Join 方法、StringBuilder 类、Enumerable.Aggregate 方法或字符串连接运算符。
string.Join 方法组合集合或数组的元素,并在每个元素之间插入指定的分隔符。 StringBuilder 类有效地动态构建字符串。 Enumerable.Aggregate 方法在值序列上应用累加器函数。
C# 使用 + 运算符连接字符串,但对于大型列表,效率可能较低。
使用 string.Join
以下示例使用 string.Join 方法将列表转换为字符串。
List<string> words = ["a", "visit", "to", "London"];
var res = string.Join("-", words);
Console.WriteLine(res);
此示例通过用连字符连接单词列表来创建一个 slug。即使对于大型列表,此方法也很有效,因为它只分配一次结果字符串。
$ dotnet run a-visit-to-London
使用 StringBuilder
此示例演示了如何使用 StringBuilder 类从列表构建字符串。
using System.Text;
List<string> words = ["There", "are", "three", "chairs", "and", "two",
"lamps", "in", "the", "room"];
var builder = new StringBuilder();
foreach (var word in words)
{
builder.Append(word).Append(' ');
}
Console.WriteLine(builder.ToString());
代码使用 foreach 循环遍历列表,将每个单词和一个空格附加到 StringBuilder 对象。 ToString 方法将结果转换为字符串。 由于 StringBuilder 的可变性,这种方法对于大型列表非常有效。
$ dotnet run There are three chairs and two lamps in the room
使用 Enumerable.Aggregate
下一个示例使用 Enumerable.Aggregate 方法将列表转换为字符串。
List<string> words = ["There", "are", "three", "chairs", "and", "two",
"lamps", "in", "the", "room"];
var res = words.Aggregate((total, part) => $"{total} {part}");
Console.WriteLine(res);
此示例在累加器函数中使用字符串插值,通过将每个单词与空格连接起来来构建字符串。 虽然方便,但对于大型列表,Aggregate 的效率低于 StringBuilder 或 string.Join。
使用字符串连接
此示例使用字符串连接运算符从列表构建字符串。
List<string> words = ["There", "are", "three", "chairs", "and", "two",
"lamps", "in", "the", "room"];
string res = string.Empty;
words.ForEach(word => {
res += $"{word} ";
});
Console.WriteLine(res);
代码使用 ForEach 方法迭代列表,使用 += 运算符将每个单词和一个空格附加到结果字符串。 这种方法简单易懂。 但是,对于大型列表,重复的字符串连接效率可能较低。 对于大型列表,由于性能开销,不建议使用此方法。
使用 string.Concat
将列表转换为字符串的另一种方法是使用 string.Concat 方法。 此方法连接列表的所有元素,没有任何分隔符。 当不需要分隔符时,这是一种快速连接列表元素的方法。 此方法有效地将多个字符串组合在一起。
List<string> words = ["There", "are", "three", "chairs", "and", "two",
"lamps", "in", "the", "room"];
var res = string.Concat(words);
Console.WriteLine(res);
此示例使用 string.Concat 将列表的所有元素连接成一个字符串,没有任何分隔符。 如果您需要分隔符,请改用 string.Join。 对于大型列表,此方法非常有效,因为它只分配一次结果字符串。
来源
本教程演示了在 C# 中将列表转换为字符串的各种方法。
作者
列出所有 C# 教程。