Замена текста в 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
и т.д.
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 963
Благодарностей
796
Баллы
113
Нужно в аргументы добавить разделитель, например \r\n для переносов. Тогда он не будет, например, каждую пятёрку менять (в том числе внутри уже заменённого числа 45), будет менять только полное значение на полные значения.
 

shoesmarket14

Client
Регистрация
14.09.2020
Сообщения
6
Благодарностей
0
Баллы
1
Нужно в аргументы добавить разделитель, например \r\n для переносов. Тогда он не будет, например, каждую пятёрку менять (в том числе внутри уже заменённого числа 45), будет менять только полное значение на полные значения.
можно на примере куска кода?
.Replace("6,5", "38,5")
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 963
Благодарностей
796
Баллы
113

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
Тогда как в этом случае сделать?
 

shoesmarket14

Client
Регистрация
14.09.2020
Сообщения
6
Благодарностей
0
Баллы
1

Nick

Client
Регистрация
22.07.2014
Сообщения
1 963
Благодарностей
796
Баллы
113
тогда
.Replace("\
C#:
.Replace(";6,5", ";38,5")
, но это не сработает на первом элементе, если перед ним не будет разделителя
 

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