0

Split を使用して、長い文字列のさまざまな部分を選択しています。次に、Split を使用して同じ文字列を再び長い文字列に再構築しますが、文字列の最初の部分は省略します

string.Split(',')[1] + "," + string.Split(',')[2] + "," + string.Split(',')[3] ....

使っている弦

string info = "id,title,director,actor1,actor2,actor3,genre,runtime,year,comment";

私の質問は、私のように Split を使用せずに文字列を再構築する簡単で単純な方法があるかどうかです。最初の部分である id を除いて文字列のすべての部分が必要なので、最初のコンマ記号の前にすべてのものを削除する簡単な方法が必要ですか?

4

3 に答える 3

7

あなたは物事を複雑にしすぎています:

info = info.SubString(info.IndexOf(',') + 1);

最初のものはより高速です、これは完全を期すためだけのものです:

info = info.Remove(0, info.IndexOf(',') + 1);
于 2012-06-08T06:25:23.320 に答える
1

部分文字列の長さはわからないと思いますが、最初のコンマ(コンマを含む)の前のすべてを切り取りたいので、おそらくこのコンマの位置を探して、その後のすべてを取得するのが最も簡単な方法です。 :

int idx = info.IndexOf(',');
string result = info.Substring(idx + 1);
于 2012-06-08T06:28:38.360 に答える
1

同じ文字列を何度も分割しても意味がありません。さらに、文字列の結合は String.Join を使用して行うことができます

あなたが書く:

var str="moo,id,title,director,actor1,actor2,actor3,genre,runtime,year,comment";
var parts=str.Split(',');
var newStr=String.Join(",",parts,1,parts.Length-1);
Console.WriteLine(newStr);

さらに良いのは、IndexOf を使用して「,」の最初の出現を見つけ、最初のカンマの後に文字列を返すことです。

    var newStr=str.Substring(str.IndexOf(',')+1);

最初の要素を残りの文字列から分離したい場合は、Substring を使用してこれを行うことができます。

    var firstComma=str.IndexOf(',');
    var newStr=str.Substring(firstComma+1);
    var firstStr=str.Substring(0,firstComma);
于 2012-06-08T06:33:15.023 に答える