Подстрока в обратном индексе быстро! - PullRequest
0 голосов
/ 18 апреля 2011

Интересно, как лучше всего использовать функцию подстроки для строки в обратном режиме?

Например, у меня есть строка вроде:

string mainStr= @"CDM\D1_1";

Теперь я хочу проверить,последние два characed равны "_1" или нет.Примечание: я не хочу использовать разделение на подчеркивании.Просто ищем самый быстрый способ сделать обратную подстроку, которая начинается с последнего символа в строке и заканчивается первым символом.Я пробовал это до сих пор, но не уверен, что это работает!

string revStr = new string(mainStr.ToCharArray().Reverse().ToArray());
if (revStr.Substring(0, 2) == "_1")
{
   //Do blah blah
}

ОБНОВЛЕНИЕ

Извините, что беспокою парней, но это понедельник, вы знаете!поэтому проблема была в том, что я должен проверить «1_» после обращения массива.Тем не менее, это лучше делать со строкой.EndsWith, как предложено ниже.

Ответы [ 2 ]

9 голосов
/ 18 апреля 2011

Используйте встроенный метод string.EndsWith и string.StartsWith .

1 голос
/ 18 апреля 2011

пробовал это до сих пор, но не уверен, что это работает!

эхх.Разве вы не проверяли это?

Я бы использовал var index = str.LastIndexOf("_1");

Просто ищу самый быстрый способ сделать обратную подстроку, которая начинается с последнего символа в строке и заканчиваетсяпервый символЯ пробовал это до сих пор, но не уверен, что это работает!

Вы меня смущаете.Разве ваш пример не должен содержать sub.Substring(0, 2) == "1_" в этом случае?

...