将字符串列表转换为单个字符串

List MyList = (List)Session["MyList"]; 

MyList包含如下值: 12 34 55 23

我尝试使用下面的代码,但值消失了。

 string Something = Convert.ToString(MyList); 

我还需要用逗号(“ , ”)分隔每个值。

如何将List Mylist转换为string

 string Something = string.Join(",", MyList); 

试试这段代码:

 var list = new List {"12", "13", "14"}; var result = string.Join(",", list); Console.WriteLine(result); 

结果是: "12,13,14"

或者,如果您关注性能,可以使用循环,

 var myList = new List { "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 "," 

该Benchmark显示使用上述循环比String.Join()快了约16%(平均超过3次运行)。

完全可以使用LINQ,并执行以下操作:

 string finalString = collection.Aggregate("", (current, s) => current + (s + ",")); 

但是,为了纯粹的可读性,我建议使用循环版本或string.Join机制。

您可以为此创建一个扩展方法,因此它也更具可读性:

 public static class GenericListExtensions { public static string ToString(this IList list) { return string.Join(",", list); } } 

然后你可以:

 string Something = MyList.ToString();