您可以通过使用 Linq、string.Join
和 string.Format
来使它更紧凑:
result = string.Join(",", list.Select(t => string.Format("[ '{0}', '{1}']", t.Item1, t.Item2)));
t
,表示tuple
:) - D Stanley这里 有一些 基准测试 (注意:每个单词都包含一个链接,但我认为最好的参考资料之一是这个),讲述了如何合并字符串。
引用自参考资料:
Rico Mariani,.NET 性能大师,撰写了一篇关于这个问题的文章。它“并不像人们想象的那么简单”。
你可以看看特别是 string.Concat
和 StringBuilder
,它们通常比 +
运算符更快。
这里我使用了 string.Concat
:
string str = string.Concat(new string[] { "[ '", list[i].Item1, "', '", list[i].Item2, "']," });
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 + "']"));
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);
StringBuilder
,否则肯定没有任何显著性能提升。 - D Stanleystring.Format
和/或 Linq,但在我看来,这两种方法都不能带来很大的改进。 - D StanleyString.Join(list, x=> String.Format("['{0}','{1}']", x.Item1, x.Item2)
来表示你的精确代码。但由于我擅长字符串转义,我会直接使用JSON序列化器来避免所有可能出现的元素中含有引号的问题。 - Alexei Levenkov