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

仕事をします。Fx4以降が必要です。

于 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

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

Enumerable.Aggregate

于 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 に答える
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 に答える
1

おそらく最後に a が必要なので、 and ループの代わりにstring適切なオーバーロードを使用してください:string.JoinStringBuilder

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

using System.Linq;

...

StringBuilder builder = new StringBuilder(); 
foreach (string str in ccsplit.Skip(1)) 
{ 
    builder.Append(str); 
} 
于 2012-04-13T12:28:38.983 に答える
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

インデックスを 0 ではなく 1 から開始するように foreach を a に変更します。

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