将`List <string>`转换为逗号分隔的字符串</string>

时间:2011-12-21 16:40:47

标签: c# asp.net

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

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

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

PS:在此网站上搜索,但大多数解决方案适用于Java或Python

6 个答案:

答案 0 :(得分:106)

在.NET 4中,您不需要ToArray()来电 - string.Join is overloaded来接受IEnumerable<T>或仅IEnumerable<string>

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

可以遍历列表,计算出最终大小,分配一个大小合适的StringBuilder,然后自己进行加入。这样可以避免额外的数组被构建的原因很少 - 但它不会节省太多时间,而且会有更多的很多代码。

答案 1 :(得分:14)

以下将导致以逗号分隔的列表。请务必为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);

即可

答案 2 :(得分:9)

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

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

答案 3 :(得分:3)

按照:

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

答案 4 :(得分:1)

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

Convert a list of string to comma separated string C#.

答案 5 :(得分:0)

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

(没有ToArray它仍然可以工作吗?)