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"
或者,如果您关注性能,您可以使用循环。
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 ","
这个基准测试显示使用上述循环比String.Join()
快大约16%(平均3次运行)。
string finalString = collection.Aggregate("", (current, s) => current + (s + ","));
然而,为了更好的可读性,我建议使用循环版本或者string.Join机制。
public static class GenericListExtensions
{
public static string ToString<T>(this IList<T> list)
{
return string.Join(",", list);
}
}
然后您可以:
string Something = MyList.ToString<string>();
我必须在被接受的答案上添加额外的部分。如果没有它,Unity会抛出这个错误:
最初的回答:
cannot convert `System.Collections.Generic.List<string>' expression to type `string[]'
.ToArray()
。List<int> stringNums = new List<string>();
String.Join(",", stringNums.ToArray())