List<string> MyList = (List<string>)Session["MyList"];
MyList
包含這樣的值:12
34
55
23
。轉換字符串列表到一個字符串
我嘗試使用下面的代碼,但值消失。
string Something = Convert.ToString(MyList);
我還需要用逗號分隔每個值(「,
」)。
如何將List<string> Mylist
轉換爲string
?
List<string> MyList = (List<string>)Session["MyList"];
MyList
包含這樣的值:12
34
55
23
。轉換字符串列表到一個字符串
我嘗試使用下面的代碼,但值消失。
string Something = Convert.ToString(MyList);
我還需要用逗號分隔每個值(「,
」)。
如何將List<string> Mylist
轉換爲string
?
string Something = string.Join(",", MyList);
試試這個代碼:
var list = new List<string> {"12", "13", "14"};
var result = string.Join(",", list);
Console.WriteLine(result);
結果是:"12,13,14"
可以彌補這方面的擴展方法,所以它也將更具可讀性:
public static class GenericListExtensions
{
public static string ToString<T>(this IList<T> list)
{
return string.Join(",", list);
}
}
然後你可以:
string Something = MyList.ToString<string>();
或者,如果你關心性能,你可以使用一個循環,
var myList = new List<string> { "11", "22", "33" };
var myString = "";
var sb = new System.Text.StringBuilder();
foreach (string s in myList)
{
sb.Append(s).Append(",");
}
myString = sb.Remove(sb.Length - 1, 1).ToString(); // Removes last ","
This Benchmark表明,使用上述環路〜比String.Join()
(平均超過3箇中運行)快16%。
完全或者你可以使用LINQ,並做如下:
string finalString = collection.Aggregate("", (current, s) => current + (s + ","));
然而,對於純粹的可讀性,我建議使用任一回路的版本,或的string.join機制。
不知道一個循環比'String.Join()'快。但是,如果您真的關心性能,那麼您根本不應該使用C#(或其他.NET語言)。 – ProgramFOX