Входные данные представляют собой строку в форме 12 разделенных запятых значений, смеси любого или двух комбинаций символов /цифр. StringBuilder.replace Но это заменило бы, например, все буквы a, поэтому я переключился на совпадение с резервом, но генерирование куча новых строк не кажется самым быстрым способом выполнения замены.
Код: Выделить всё
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" [/list]
Подробнее здесь: https://stackoverflow.com/questions/797 ... n-a-string