拆分并joinC#string

可能重复:
首先拆分,然后join一个string的子集

我试图将一个string拆分成一个数组,取出第一个元素(使用它),然后将其余的数组join到一个单独的string中。

例:

theString = "Some Very Large String Here" 

会成为:

 theArray = [ "Some", "Very", "Large", "String", "Here" ] 

然后我想在variables中设置第一个元素,稍后再使用它。

然后我想把数组的其余部分join到一个新的string中。

所以会变成:

 firstElem = "Some"; restOfArray = "Very Large String Here" 

我知道我可以使用theArray[0]作为第一个元素,但是如何将数组的其余部分形成一个新的string呢?

你可以使用string.Splitstring.Join

 string theString = "Some Very Large String Here"; var array = theString.Split(' '); string firstElem = array.First(); string restOfArray = string.Join(" ", array.Skip(1)); 

如果你知道你总是只想分解第一个元素,你可以使用:

 var array = theString.Split(' ', 2); 

这使得你不必join:

 string restOfArray = array[1]; 

那么,这是我的“答案”。 它使用的事实,可以告诉String.Split拥有它应该分裂的许多项目(我发现在其他答案缺乏):

 string theString = "Some Very Large String Here"; var array = theString.Split(new [] { ' ' }, 2); // return at most 2 parts // note: be sure to check it's not an empty array string firstElem = array[0]; // note: be sure to check length first string restOfArray = array[1]; 

这与Substring方法非常相似,只是通过不同的方式。

你可以拆分和joinstring,但为什么不使用子string? 然后,你只能得到一个分裂,而不是分裂成5个部分的string,并重新join它。 最终的结果是一样的,但子string可能会快一点。

  string lcStart = "Some Very Large String Here"; int lnSpace = lcStart.IndexOf(' '); if (lnSpace > -1) { string lcFirst = lcStart.Substring(0, lnSpace); string lcRest = lcStart.Substring(lnSpace + 1); }