あなたはこのvar xyzArray = xyz.Split('.','!');
var xyz = "This is Rock Balbao. I am the good guy. I am Awesome! And I am Cool";
var xyzArray = xyz.Split('.','!');
for (int i = 0; i < xyzArray.Length; i++)
{
xyzArray[i] = xyzArray[i].Trim();
}
にchar
配列を変更する必要がアップデート はあなたのConvertAllへの答えは単純なループ
よりもはるかに高速ではないのと同じように、単にfololwingコードを試してみて、あなたは、ボンネットの下で代議員を呼び出すことは、直接mrthodよりも多くの時間を費やすことが自分自身を参照してください
var xyz = "This is Rock Balbao. I am the good guy. I am Awesome! And I am Cool";
var sw = Stopwatch.StartNew();
var xyzArray = xyz.Split('.','!');
for (int i = 0; i < xyzArray.Length; i++)
{
xyzArray[i] = xyzArray[i].Trim();
}
sw.Stop();
//end test1
var sw1 = Stopwatch.StartNew();
string[] xyzArray1 = Array.ConvertAll(
xyz.Split(new String[] { ".", "!" }, StringSplitOptions.RemoveEmptyEntries),
x => x.TrimStart()
);
sw1.Stop();
Console.WriteLine("Total milliseconds : " + sw.ElapsedTicks);
Console.WriteLine("Total milliseconds (ConvertAll) : " + sw1.ElapsedTicks);
直接メソッド呼び出しは、以上〜50 X速い(私はテストを何度も繰り返す必要があり)
ところで、これはフードの下ConvertAll
public static TOutput[] ConvertAll<TInput, TOutput>(TInput[] array, Converter<TInput,TOutput> converter) {
if(array == null) {
throw new ArgumentNullException("array");
}
if(converter == null) {
throw new ArgumentNullException("converter");
}
Contract.Ensures(Contract.Result<TOutput[]>() != null);
Contract.Ensures(Contract.Result<TOutput[]>().Length == array.Length);
Contract.EndContractBlock();
TOutput[] newArray = new TOutput[array.Length];
for(int i = 0; i< array.Length; i++) {
newArray[i] = converter(array[i]);
}
return newArray;
}
を第一及び –
あなたは文字列配列内のスペースを見ることができない、第2の命令との違いは何ですか? –
ごめんなさい申し訳ありません –