将“列表<字符串>”转换为逗号分隔的字符串
本文关键字:字符串 分隔 转换 列表 | 更新日期: 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 它还能工作吗(?