将字符串列表转换为单个字符串
本文关键字:字符串 单个 列表 转换 | 更新日期: 2023-09-27 18:35:20
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"
或者,您也可以使用 LINQ,并执行以下操作:
string finalString = collection.Aggregate("", (current, s) => current + (s + ","));
但是,为了纯粹的可读性,我建议使用循环版本或字符串。加入机制。
或者,如果你担心性能,你可以使用循环,
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 次运行平均值)。
你可以为此创建一个扩展方法,所以它也将更具可读性:
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())