繁体   English   中英

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

[英]Convert `List<string>` to comma-separated string

有没有一种快速的方法将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的

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

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

可以迭代列表,计算出最终大小,分配一个大小合适的StringBuilder ,然后自己进行连接。 这将避免额外的阵列正在修建的小原因-但它不会节省很多时间,这将是一个很大更多的代码。

以下将导致以逗号分隔的列表。 确保包含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);

要扩展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()));
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它仍然可以工作)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM