c++ Join串联对象数组的各个元素

作者:袖梨 2022-06-25

Join() – 串联对象数组的各个元素,其中在每个元素之间使用指定的分隔符

参数

separator

类型:System.String
要用作分隔符的字符串。

 

values

类型:System.Object[]
一个数组,其中包含要连接的元素。

 

返回值

类型:System.String
一个由 values 的元素组成的字符串,这些元素以 separator 字符串分隔。

 

看下面的例子,用StringBuilder来实现串联一组字符串:

 

string[] parts = { "Apple", "Orange", "Banana", "Pear", "Peach" };


var builder = new StringBuilder();

for (int i = 0; i < parts.Length; i++)
{
    builder.Append(parts[i]);


    // 将最后一个','去掉

    if (i != parts.Length - 1)
    {
        builder.Append(", ");
    }
}


// 结果是 "Apple, Orange, Banana, Pear, Peach"

var result = builder.ToString();

 

 

用 string.Join() 可以轻松实现:

 


 string[] parts = { "Apple", "Orange", "Banana", "Pear", "Peach" };
 var result = string.Join(", ", parts);

 

 

很多人可以没有意识到 Join() 可以合并任何类型,如 int, DateTime, double, 或其他自定义的类型! 

当调用 string.Join() 合并非字符串的数值时,它实际上会让每一个元素 ToString(). 也就是说这些元素 ToString() 的定义是符合你的需求的才行 – 虽然大部分asp教程.net库中的类型都已经有了.

举例子:

  

// 合并整型 "1,2,3,4,5,6,7,8,9,10"


var numsFromOneToTen = string.Join(",", Enumerable.Range(1, 10));


// 合并不同类型的数值 ==> "1-3.1415927-9/16/2011 12:52:22 PM"

var variousObjects = string.Join("-", new object[] { 1, 3.1415927, DateTime.Now });

 

最后, Join() 明显是支持 IEnumerable 和 object[], string[]:

 


string[] arr = { "one", "two", "three" };
Console.WriteLine(string.Join(",", arr));

//.net 4.0 中你可以直接列出所有数值,不必要生成数组
var numsFromOneToTen = string.Join(",", "A", "B", "C", "D", "E");

var variousObjects = string.Join("-", 1, 3.1415927, DateTime.Now);

相关文章

精彩推荐