我在下面的结构中有一个List:
Tuple<string, string>
像这样:
我想加入列表,形成如下字符串:
['A', '1'],['B', '2'], ['C', '3']...
现在我正在使用以下代码:
string result = "";
for (int i = 0; i < list.Count; i++)
{
result += "[ '" + list[i].Item1 + "', '" + list[i].Item2 + "'],";
}
代码工作正常,但想问一下是否有更好的方法可以做到这一点?
答案 0 :(得分:7)
您可以使用Linq,string.Join
和string.Format
使其更紧凑:
result = string.Join(",", list.Select(t => string.Format("[ '{0}', '{1}']", t.Item1, t.Item2)));
答案 1 :(得分:4)
您可以使用linq
和string interpolation执行此操作:
string.Join(", ", list.Select(t => $"['{t.Item1}', '{t.Item2}']"));
答案 2 :(得分:2)
There are some benchmarking(注意:每个字都包含一个链接,但我认为最好的参考之一是this。)如何加入string
。
引用引用:
Rico Mariani,.NET性能大师,就此而言an article 学科。它的并不像人们怀疑的那么简单。
您可以查看string.Concat
和string.Builder
,特别是它们通常比+
运营商更快。
我在这里使用string.Concat
:
string str = string.Concat(new string[] { "[ '", list[i].Item1, "', '", list[i].Item2, "']," });
答案 3 :(得分:1)
您也可以使用LINQ:
var input = new List<Tuple<string, string>> { Tuple.Create("A", "1"), Tuple.Create("B", "2") };
var result = String.Join(",", input.Select(elem => "[ '" + elem.Item1 + "', '" + elem.Item2 + "']"));
Console.WriteLine(result);
答案 4 :(得分:1)
这也可能适合你
var input = new List<Tuple<string, string>>
{
Tuple.Create("A", "1"),
Tuple.Create("B", "2"),
Tuple.Create("C", "3")
};
string tpljoined = string.Join(", ",
input.Select(x => "['" + x.Item1 + "','" + x.Item2 + "']"));