有没有一种快速的方法可以转换List<string>为用stringC#逗号分隔?
我是这样做的,但是也许有更快或更有效的方法吗?
List<string> ls = new List<string>();
ls.Add("one");
ls.Add("two");
string type = string.Join(",", ls.ToArray());
PS:在此站点上搜索,但是大多数解决方案是针对Java或Python的
有没有一种快速的方法可以转换List<string>为用stringC#逗号分隔?
我是这样做的,但是也许有更快或更有效的方法吗?
List<string> ls = new List<string>();
ls.Add("one");
ls.Add("two");
string type = string.Join(",", ls.ToArray());
PS:在此站点上搜索,但是大多数解决方案是针对Java或Python的
string[](因为我不使用.NET 4)
Answers:
在.NET 4中,您不需要ToArray()调用-string.Join重载即可接受IEnumerable<T>或只是IEnumerable<string>。
在.NET 4之前,可能有更有效的方法来执行此操作,但是您真的需要它们吗?这实际上是代码中的瓶颈吗?
您可以遍历列表,确定最终大小,分配StringBuilder恰好合适的大小,然后自己加入。这样可以避免多余的数组没有任何理由被构建-但是这样不会节省很多时间,并且会增加很多代码。
以下将导致逗号分隔的列表。请务必在其中包含using语句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);
请遵循以下步骤:
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);
}
那就是我希望查看是否维护您的代码的方式。如果您设法找到一个更快的解决方案,那将是非常深奥的,您应该将其真正掩藏在描述其功能的方法中。
(在没有ToArray的情况下仍然可以使用)吗?
string.Join只能在Array的上进行strings。因此,这是必要的(因为我不使用.NET 4
ToArray()。