Мне было интересно узнать разницу в скорости между счетчиком и длиной. Я верил, что длина будет быстрее ...
Я создал простой скрипт в LinqPad для проверки этого:
Stopwatch timer = new Stopwatch();
string SomeText = @"";
bool DoLength = true;
//DoLength = false;
if (DoLength) //1252
{
timer.Start();
SomeText.Length.Dump("Length");
timer.Stop();
timer.ElapsedTicks.Dump("Elapsed");
}
else //1166
{
timer.Start();
SomeText.Count().Dump("Count");
timer.Stop();
timer.ElapsedTicks.Dump("Elapsed");
}
Я добавил длинную строку текста, чтобы проверить это в SomeText. Я отметил, что мне нужно было выполнять их по отдельности, чтобы получить более точные результаты для второго теста. Запуск в тандеме всегда приводил к более быстрому ответу на второй звонок. (При удалении комментария к DoLength будет запущен тест подсчета).
Я ставлю свои результаты в комментариях рядом с if или else. Я был удивлен, что граф оказался быстрее, чем длина.
Не стесняйтесь делать свои собственные тесты.