在C#中使用字符串插值连接多个字符串

时间:2018-10-02 06:21:37

标签: c# string

我尝试的代码:

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();

5 个答案:

答案 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.Concatstring.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()与字符串内插一起用于字符串数组