Re[5]: string.StartsWith очень-очень медленная. С чего вдруг
От: _FRED_ Черногория
Дата: 10.12.08 14:22
Оценка: 3 (2) +3
Здравствуйте, Kore Sar, Вы писали:

KS>ИСПОЛЬЗУЙТЕ ЭТО ВСЕГДА!

KS>public static class MyExtentionMethods
KS>{
KS>    public static bool AsciiStartsWith(this string str, string pattern)
KS>    {
KS>            if (pattern.Length > number.Length) return false;
KS>            bool match = true;
KS>            for (int digitIndex = 0; digitIndex < pattern.Length && match; digitIndex++)
KS>            {
KS>                match = match && number[digitIndex].Equals(pattern[digitIndex]);
KS>            }
KS>            return match;
KS>    }
KS>}


Прежде чем капслочить тут на всех, выставил бы для начала проверку аргументов что ль… во-вторых, надо бы всё-тки поточнее определиться, как называется первый параметр. Ну, и в-третьих, раз уж крутишься в цикле до тех пор, пока предекат (match) истинный, то чего его запоминать и умножать на самого себя? Достаточно было бы
for(var i = 0; i < pattern.Length; i++) {
  if(!number[i].Equals(pattern[i])) {
    return false;
  }//if
}//for
return true;


А на последок: слово "Ascii" в имени метода не соответствует тому, что происходит внутри метода — проверки, что обрабатываемые строки содержат символы лишь Askii-диапазона нигде нет. Так что название тоже не мешает подобрать более подходящее.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.