Приоритет выбора из списка

dihard

Client
Регистрация
08.11.2019
Сообщения
243
Благодарностей
40
Баллы
28
Подскажите как можно сделать по логике приоритет выбора из списка. Тоесть я рассуждал так - создаю список приоритета скажем :
Маша
Параша
Галя

Есть второй список где много строк типа(без дублей имен):
ТутГаляЛежала
ТамВасяЛизал
ГдеПарашаТанцевала
УвыМашаЗапоздала

Берем первую строку из списка "Приоритет" и ищем содержит ли строки Машу если Маши нету, берем Парашу, если список закончился, то берем рандом(пункт про рандом как сделать понятно)
Как это по логике организовать коротко. Сколько не думал куча кубиков получаетя.
 
  • Спасибо
Реакции: Alexmd

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
C#:
List<string> names = new List<string>(){"Маша","Параша","Галя"};
List<string> poems = new List<string>(){"ТутГаляЛежала","ТамВасяЛизал","ГдеПарашаТанцевала","УвыМашаЗапоздала"};
foreach(string name in names){
    foreach(string poem in poems){
        if(poem.Contains(name))
            return poem;
    }
}
return poems.ToArray().Shuffle().First();
покороче сделал. кофе-брейк закончен.
C#:
List<string> names = new List<string>(){"Маша","Параша","Галя"};
List<string> poems = new List<string>(){"ТутГаляЛежала","ТамВасяЛизал","ГдеПарашаТанцевала","УвыМашаЗапоздала"};
try{
    return names.GroupBy(x=>poems.Where(w=>w.Contains(x)), x=>x).Where(x=>x.Key.Count() > 0).First().Key.First();
}
catch{
    return poems.AsEnumerable().Shuffle().First();
}
 
Последнее редактирование:
  • Спасибо
Реакции: dihard

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Как это по логике организовать коротко. Сколько не думал куча кубиков получаетя
Экшен #1 - берём первую строку из списка "Приоритет".
Экшен #2 - "Операции над списком"-"Получить строку"-"Содержит текст" - подставляем строку полученную в предыдущем шаге.

Экшен #3 - Получить случайную строку, если в списке "Приоритет" кончились строки.
83746

3 экшена вроде не так много :-) Либо я не до конца понял задачу.
 
  • Спасибо
Реакции: dihard и Alexmd

dihard

Client
Регистрация
08.11.2019
Сообщения
243
Благодарностей
40
Баллы
28
Блин точно в списке есть такой пункт "Содержит текст":ak:
Спасибо всем ребят)))
 

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