1

我有一个数组,例如 string[] ccsplit。

我想将所有这些添加到一个字符串中,所以我使用 stringbuilder:

StringBuilder builder = new StringBuilder();
foreach (string str in ccsplit)
{
    builder.Append(str);
}

但唯一的问题是我不希望将字符串 ccsplit[0] 添加到 stringbuilder 中,我该如何实现呢?

4

12 回答 12

10

甚至不需要使用 StringBuilder 或循环。

 string result = String.Concat(ccsplit.Skip(1));

将完成这项工作。您确实需要 Fx 4 或更高版本。

于 2012-04-13T12:31:47.113 回答
7

您可以始终从 1 开始索引并将其附加到 stringbuilder。

for(int i=1; i<lengthOfArray;i++)
{
    //Do your stuff.
}
于 2012-04-13T12:29:55.397 回答
4

单行答案

string str = string.Join("", ccsplit.Skip(1).ToArray());
于 2012-04-13T12:31:49.750 回答
3

如果你可以使用 Linq,你可以使用 Skip 扩展方法:

foreach (string str in ccsplit.Skip(1)) 
{
    builder.Append(str);
}

或者,没有 Linq:

for (int i = 1; i < ccsplit.Length; i++) {
    builder.Append(ccsplit[i]);
}
于 2012-04-13T12:28:25.117 回答
2

您可以使用 Skip() http://msdn.microsoft.com/en-us/library/bb358985.aspx

 StringBuilder builder = new StringBuilder();
        foreach (string str in ccsplit.Skip(1))
        {
            builder.Append(str);
        }
于 2012-04-13T12:28:46.773 回答
2

您还可以使用 LINQ 连接所有字符串:

String result = ccsplit.Skip(1).Aggregate((s1, s2) => s1 + s2);

编辑:这是一个使用的版本StringBuilder

String result = ccsplit.Skip(1).Aggregate(new StringBuilder(),
                (sb, str) => sb.Append(str),
                (sb) => sb.ToString());

可枚举.聚合

于 2012-04-13T12:30:50.000 回答
2

这就是没有 LINQ 的方法。

for (var i = 1; i < ccsplit.Length; i++){
    builder.Append(ccsplit[i]);
}
于 2012-04-13T12:30:55.617 回答
1

using System.Linq;

...

StringBuilder builder = new StringBuilder(); 
foreach (string str in ccsplit.Skip(1)) 
{ 
    builder.Append(str); 
} 
于 2012-04-13T12:28:38.983 回答
1

你可能string最终需要 a ,所以只需使用适当string.Join的重载而不是StringBuilder循环:

string combined = string.Join(string.Empty, ccsplit, 1, ccsplit.Length - 1);
于 2012-04-13T12:32:22.847 回答
0

使用 for 循环:

  StringBuilder builder = new StringBuilder();
    for(int i = 1; i < ccsplit.Length; i++)
    {
         builder.Append(ccsplit[i]);
    }
于 2012-04-13T12:31:45.540 回答
0

你可以这样做:

StringBuilder builder = new StringBuilder(); 
for (int ccsplitIndex = 1; ccsplitIndex < ccsplit.Length; ccsplitIndex++) 
{ 
    builder.Append(ccsplit[ccsplitIndex]); 
} 
于 2012-04-13T12:31:54.307 回答
0

将 foreach 更改为 a 以从 1 而不是 0 开始索引

for (int i = 1; i <= ccsplit.Length-1; i++)
{
   builder.Append(ccsplit[i]);
}
于 2012-04-13T12:35:14.773 回答