Соответствие данных id из массива

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Кто поможет со снипетом?
Есть массив значений:
Drama=3;
Thriller=2;
Western=1;
Action=6;
Mystery=5;

И есть переменная Ganres в которой строка вот такого вида:
Drama, Thriller, Western, Action, Mystery
Нужно чтобы на выходе снипет преобразовал ее в числовые значения из массива. Вот так: 3,2,1,6,5
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
  • Спасибо
Реакции: Tonny

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Dimionix, спасибо!!!
 

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Еще нужно добавить что если нет в массиве, то ставится значение к примеру 0. Как это добавить вот сюда?
Код:
string text = project.Variables["text"].Value; // переменная с исходным текстом
return text.Replace("Drama", "1")
    .Replace("Thriller", "3")
    .Replace("Western", "2")
    .Replace("Action", "4")
    .Replace("Mystery", "5")
    .Replace("Action", "6");
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
можно попробовать регуляркой заменять \w+ на 0.
за код не ручаюсь
.PregReplace(@"\w+", "0")
 
  • Спасибо
Реакции: Tonny

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Код:
string text = project.Variables["text"].Value;
text = text.Replace("Drama", "1")
    .Replace("Thriller", "3")
    .Replace("Western", "2")
    .Replace("Action", "4")
    .Replace("Mystery", "5");
return Regex.Replace(text, @"[A-Za-z]+", "0");
 
  • Спасибо
Реакции: Tonny и CSS

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Не хочет так работать:
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Что за переменная genre в коде? Покажите начало кода.
Вы хотите результат сохранять в другую переменную или что?

Заметил, что встречаются названия категорий, состоящие из нескольких слов, тогда надо заменить регулярку на такую: @"([A-Za-z]\ ?)+"
 
Последнее редактирование:

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Да, результат в другую переменную сохраняю. Вот скрин:
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Вторую строку замените на:
Код:
text = text.Replace("Action", "2")
Последнюю на:
Код:
return Regex.Replace(text, @"([A-Za-z]\ ?)+", "0");
 
  • Спасибо
Реакции: CSS и Tonny

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Все теперь работает, Спасибо!!!
 

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