2009-07-10 2 views
1

Что лучше всего переписать этот метод, чтобы ускорить его?Каков самый быстрый способ узнать, заканчивается ли строка другой строкой?

public static bool EndsWith(string line, string term) 
{ 

    bool rb = false; 

    int lengthOfTerm = term.Length; 

    string endOfString = StringHelpers.RightString(line, lengthOfTerm); 

    if (StringHelpers.AreEqual(term, endOfString)) 
    { 
     return true; 
    } 
    else 
    { 
     rb = false; 
    } 

    if (line == term) 
    { 
     rb = true; 
    } 

    return rb; 

} 
+1

Этот вопрос может выиграть за то, что точность 100% во всех ответов (по крайней мере, на момент написания). –

+0

спасибо за единодушную помощь всем, я просмотрел элементы струны и думаю, что могу выкинуть мои вспомогательные функции StartsWith и PadWithZeros :-) –

+0

IsNullOrEmpty - мой любимый –

ответ

24

Может быть, я полностью отсутствует пункт, но я бы спонтанно пойти методом String.EndsWith.

+4

+1, вы вряд ли получите его быстрее, чем Microsoft может в ядре языка. – paxdiablo

+0

Я в настоящее время рефакторинг некоторых вспомогательных методов, которые я сделал в 2002 году, когда это не было .EndsWith в C# 1 или я не знал об этом, спасибо. Смешно, что он имеет то же имя. –

+0

@Edward; тот, кто написал этот метод, сделал домашнее задание в отделе именования. Думаю, если вам будет проще рефакторинг. –

6

Вы можете отказаться от метода, а не переписать его ...

public static bool EndsWith(string line, string term) 
{ 
    return line.EndsWith(term); 
} 
4

Не могли бы вы использовать встроенный .NET метод string.Endwith()?

3

Не можете ли вы просто использовать стандартную строку.EndsWith() function ??

3

Есть ли причина, по которой вы не используете сборку в String.EndsWith method? Я полагаю, что это будет самое быстрое решение большую часть времени.

Смежные вопросы