将`List <string>`转换为逗号分隔的string

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

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

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

PS:在这个网站上search,但是大多数解决scheme都是针对Java或Python的

在.NET 4中,您不需要ToArray()调用 – string.Join被重载以接受IEnumerable<T>或只是IEnumerable<string>

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

可以迭代列表,计算出最终的大小,分配一个正确大小的StringBuilder ,然后自己进行连接。 这将避免额外的数组正在build设的原因 – 但它不会节省太多的时间,这将是更多的代码。

以下内容将以逗号分隔列表forms显示。 一定要包含System.Linq的使用语句

 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);

为了扩大Jon Skeets的答案,在.Net 4的代码是:

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

按照这个:

  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())); 

这就是我希望看到我是否维护你的代码的方式。 如果你设法find一个更快的解决scheme,这将是非常深奥的,你应该真的把它埋在一个方法,描述它的作用。

(它没有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); } 

将string列表转换为逗号分隔的stringC#。