Замена текста в C#

shoesmarket14

Client
Регистрация
14.09.2020
Сообщения
6
Реакции
0
Баллы
1
Есть список размеров обуви
7
7,5
8
8,5
9
9,5
10
10,5
11
11,5
12
13
14

Есть код, который должен переводить размера в европейский формат

C#:
Развернуть Свернуть Копировать
string text = project.Variables["size"].Value; // переменная с текстом
text = text
.Replace("6,5", "38,5")
.Replace("7,5", "40")
.Replace("8,5", "41")
.Replace("9,5", "42,5")
.Replace("10,5", "44")
.Replace("11,5", "45")
.Replace("6", "38")
.Replace("7", "39")
.Replace("8", "40,5")
.Replace("9", "42")
.Replace("10", "43")
.Replace("11", "44,5")
.Replace("12", "46")
.Replace("5", "")
.Replace("4", "")
.Replace("3", "")
.Replace("2", "")
.Replace("1", "")
.Replace("5,5", "")
.Replace("4,5", "")
.Replace("3,5", "")
.Replace("2,5", "")
.Replace("1,5", "")
.Replace("12,5", "")
.Replace("13", "")
.Replace("13,5", "")
.Replace("14", "")
.Replace("14,5", "")
.Replace("15", "")
.Replace("15,5", "");
return text;

Но он не рабоает так, как надо.
В результате получаем
0
0,


,


,

6

Понятно, что код заменяет все что он видит для замены. Как исправить код?
Результат должен быть примерно такой:
40
41
42
42,5
43
44,5
45
и т.д.
 
Нужно в аргументы добавить разделитель, например \r\n для переносов. Тогда он не будет, например, каждую пятёрку менять (в том числе внутри уже заменённого числа 45), будет менять только полное значение на полные значения.
 
Нужно в аргументы добавить разделитель, например \r\n для переносов. Тогда он не будет, например, каждую пятёрку менять (в том числе внутри уже заменённого числа 45), будет менять только полное значение на полные значения.
можно на примере куска кода?
.Replace("6,5", "38,5")
 
C#:
Развернуть Свернуть Копировать
.Replace("\r\n6,5", "\r\n38,5")
 
Спасибо за ответ :-)
А если, например, данные будут ити в таком формате: 7;7,5;8;8,5;9;9,5;10;10,5;11;11,5;12;13;14
Тогда как в этом случае сделать?
 
C#:
Развернуть Свернуть Копировать
.Replace("\r\n6,5", "\r\n38,5")
Спасибо за ответ :-)
А если, например, данные будут ити в таком формате: 7;7,5;8;8,5;9;9,5;10;10,5;11;11,5;12;13;14
Тогда как в этом случае сделать?
 
тогда
.Replace("\
C#:
Развернуть Свернуть Копировать
.Replace(";6,5", ";38,5")
, но это не сработает на первом элементе, если перед ним не будет разделителя
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)