我尝试的代码:
public void ConcatIntegers() {
string s = "";
for (int i = 0; i <= 5; i++) {
s += i.ToString();
}
Console.WriteLine($ "{s}");
Console.Read();
}
在上述方法中,+用于连接多个值,但无论如何我一直在寻找除join,aggregate,concatenate函数之外的功能,而不是+
符号,我想直接使用字符串interpolation ($)
来存储连接的字符串到一个字符串变量中。
string s = "";
for (int i = 0; i <= 5; i++) {
// Some code which use string interpolation to
// concatenat multiple string and that result is stored in s
// variable.
}
Console.WriteLine($ "{s}");
Console.Read();
答案 0 :(得分:1)
使用StringBuilder,因为如果您这样做很多,它会更快 使用AppendFormat
StringBuilder sb = new StringBuilder();
string var1 = "abcd";
string var2 = "efgh";
sb.AppendFormat("example: {0}, {1}", var1, var2);
答案 1 :(得分:1)
我将使用String Builder连接字符串:
更改后的代码:
StringBuilder sb = new StringBuilder();
string s = "";
sb.Append(s);
for (int i = 0; i <= 5; i++)
{
sb.Append(i);
}
Console.WriteLine(sb);
Console.ReadLine();
答案 2 :(得分:1)
如果要连接,让我们尝试string.Concat或string.Join
;在 Linq 的帮助下(为了摆脱for
循环),我们将得到
using System.Linq;
...
// static: we don't use "this" in the method
public static void ConcatIntegers() {
// Concatenate range of 0..5 integers: "012345"
Console.WriteLine(string.Concat(Enumerable
.Range(0, 6))); // 6 - we want 6 numbers: 0..5
Console.Read();
}
如果要使用某些 format ,字符串插值等,请添加Select
:
public static void ConcatIntegers() {
// "000102030405" since we apply "d2" format (each number reprsented with 2 digits)
Console.WriteLine(string.Concat(Enumerable
.Range(0, 6)
.Select(i => $"{i:d2}"))); // each item in 2 digits format
Console.Read();
}
答案 3 :(得分:1)
除了join,aggregate,concatenate函数,我想使用字符串插值($)代替+符号
直接将连接的字符串存储到字符串变量中...
只需尝试:
string result = string.Empty;
for (var i = 0; i <= 5; i++) result = $"{result}{i}";
答案 4 :(得分:0)
我在string.join中使用字符串插值时也遇到类似的问题
string type1 = "a,b,c";
string[] type2 = new string[3] { "a", "b", "c" };
string result = string.Join(",", $"'{x}'");
在两种情况下,输出均应为'a','b','c'
如何将string.Join()与字符串内插一起用于字符串数组