将“列表<字符串>”转换为逗号分隔的字符串

本文关键字:字符串 分隔 转换 列表 | 更新日期: 2023-09-27 18:18:26

有没有一种快速的方法可以在 C# 中将List<string>转换为逗号分隔的string

我这样做,但也许有更快或更有效的方法?

List<string> ls = new List<string>();
ls.Add("one");
ls.Add("two");
string type = string.Join(",", ls.ToArray());

PS:在这个网站上搜索过,但大多数解决方案都是针对Java或Python的

将“列表<字符串>”转换为逗号分隔的字符串

在 .NET 4 中,您不需要ToArray()调用 - string.Join 会重载以接受IEnumerable<T>或仅接受IEnumerable<string>

在 .NET 4 之前,可能有一些更有效的方法可以做到这一点,但你真的需要它们吗?这实际上是代码中的瓶颈吗?

您可以遍历列表,计算出最终大小,分配一个大小恰到好处的StringBuilder,然后自己做联接。这将避免无缘无故地构建额外的数组 - 但它不会节省太多时间,而且会有更多的代码。

要扩展 Jon Skeets,请在 .Net 4 中回答此代码是:

string myCommaSeperatedString = string.Join(",",ls);

以下内容将导致逗号分隔的列表。请务必包含用于System.Linq的 using 语句

List<string> ls = new List<string>();
ls.Add("one");
ls.Add("two");
string type = ls.Aggregate((x,y) => x + "," + y);

将产生一个,两个

如果需要逗号后有一个空格,只需将最后一行更改为string type = ls.Aggregate((x,y) => x + ", " + y);

遵循这个:

       List<string> name = new List<string>();   
        name.Add("Latif");
        name.Add("Ram");
        name.Add("Adam");
        string nameOfString = (string.Join(",", name.Select(x => x.ToString()).ToArray()));
static void Main(string[] args)
{
   List<string> listStrings = new List<string>(){ "C#", "Asp.Net", "SQL Server", "PHP", "Angular"};
   string CommaSeparateString = GenerateCommaSeparateStringFromList(listStrings);
   Console.Write(CommaSeparateString);
   Console.ReadKey();
}
private static string GenerateCommaSeparateStringFromList(List<string> listStrings)
{
   return String.Join(",", listStrings);  
}

将字符串列表转换为逗号分隔的字符串 C#。

这就是我更愿意查看我是否在维护您的代码的方式。 如果你设法找到一个更快的解决方案,它将是非常深奥的,你应该把它埋在一个描述它做什么的方法中。

(没有 ToArray 它还能工作吗(?