[英]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);
}
這就是我希望看到我是否維護你的代碼的方式。 如果你設法找到一個更快的解決方案,那將是非常深奧的,你應該把它埋在一個描述它的功能的方法中。
(沒有ToArray它仍然可以工作)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.