Как оптимизировать свой метод C#, чтобы заменить точные совпадения данных в строке?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как оптимизировать свой метод C#, чтобы заменить точные совпадения данных в строке?

Сообщение Anonymous »

Текущая реализация занимает в среднем 10-15 мс для запуска каждый раз, когда ее называют (времена используя класс секундома до /после вызова. Она будет вызоваться в среднем 100 раз в минуту. < /p>
Входные данные представляют собой строку в форме 12 разделенных запятых значений, смеси любого или двух комбинаций символов /цифр. StringBuilder.replace Но это заменило бы, например, все буквы A, поэтому я переключился на матч Regex, который работает, но создание куча новых строк не кажется лучшим способом сделать это.

Код: Выделить всё

public static string ExactReplace(this string input, string find, string replace,
bool matchWholeWord)
{
string texttoreplace = matchWholeWord ? string.Format(@"\b{0}\b", find) : find;
return Regex.Replace(input, texttoreplace, replace);
}

public static string Parsedata(string str)
{
str = str.ExactReplace("aa", "0", true);
str = str.ExactReplace("a1", "1", true);
str = str.ExactReplace("ab", "2", true);
str = str.ExactReplace("rr", "3", true);
str = str.ExactReplace("r0", "4", true);
str = str.ExactReplace("s0", "5", true);
str = str.ExactReplace("s1", "6", true);
str = str.ExactReplace("s2", "7", true);
str = str.ExactReplace("st", "8", true);
str = str.ExactReplace("ss", "9", true);
str = str.ExactReplace("lt", "10", true);
str = str.ExactReplace("ll", "11", true);
string resultString = str;
return resultString;
}
< /code>
 уточнения: < /strong> < /p>
[list]
[*] Я хочу оптимизировать для времени выполнения, а не память. < /li>
 Строка CSV не будет содержать бельфексы или не словные символы. "A1, AB, RR, R0, S0, S1, S2, SS, ST, LT, LL, AA" 
. Parsedata вернет "1,2,3,4,5,6,7,9,8,10,11,0" .
[/list]

Подробнее здесь: https://stackoverflow.com/questions/797 ... n-a-string
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»