有没有一种快速将 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的。
ToArray()
- string.Join
已经进行了重载,可以接受IEnumerable<T>
或仅IEnumerable<string>
。StringBuilder
,然后自己进行连接。这将避免为很少原因而构建额外的数组 - 但这并不能节省多少时间,而且需要写更多的代码。就 Jon Skeet 的答案展开说明,在 .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);
将产生one,two
如果您需要在逗号后添加空格,只需将最后一行更改为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()));
String nameOfString = String.Join(",", name.Select(x => x));
- nwsmithstatic 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
方法。因此,这是必要的(因为我不使用 .NET 4
)。 - Ozkan
ToArray()
。 - Yuckstring[]
(因为我不使用.NET 4
) - Ozkan