Аналог кубика Switch на C#

  • Автор темы Автор темы Artamosa
  • Дата начала Дата начала

Artamosa

Client
Регистрация
31.01.2016
Сообщения
59
Реакции
4
Баллы
8
Приветствую!
Есть прекрасный кубик под названием Switch и он очень хорош для нескольких вариантов.
Но у меня 11к вариантов для сравнения с переменной. Подскажите, можно ли реализовать аналог Switch на C# для такого количества вариантов и будет ли он эффективным?
 
Для 11 тысяч вариантов нужен точно не свич. Свич в данном случае можно заменить на цикл foreach, например.
а лучше вообще-то массив , если конечно у него не 11к вариантов исполнения , я думаю неверно сформулирована задача.
 
Например у нас есть имя Олег и массив из 11к вариантов комбинации имен, отчеств, фамилий + возраст:

51344


Нужно получить ячейку B4

Первое, что мне пришло в голову - это положить 11к вариантов в таблицу и просто брать оттуда все строки содержащие текст "Олег", но при таком варианте мы захватим 1,3,4 строку. Можно конечно делить строки на две переменные, после чего первую через кубик If проверять на точное соответствие, но тогда в целом это все будет происходить достаточно долго.

Буду крайне благодарен за кусочек кода, который решит эту проблему.
 
Например у нас есть имя Олег и массив из 11к вариантов комбинации имен, отчеств, фамилий + возраст:

Посмотреть вложение 51344

Нужно получить ячейку B4

Первое, что мне пришло в голову - это положить 11к вариантов в таблицу и просто брать оттуда все строки содержащие текст "Олег", но при таком варианте мы захватим 1,3,4 строку. Можно конечно делить строки на две переменные, после чего первую через кубик If проверять на точное соответствие, но тогда в целом это все будет происходить достаточно долго.

Буду крайне благодарен за кусочек кода, который решит эту проблему.
дык на форуме полно снипетов по поиску нужного в массиве. просто 100500 вариантов.
 
Например у нас есть имя Олег и массив из 11к вариантов комбинации имен, отчеств, фамилий + возраст:

Посмотреть вложение 51344

Нужно получить ячейку B4

Первое, что мне пришло в голову - это положить 11к вариантов в таблицу и просто брать оттуда все строки содержащие текст "Олег", но при таком варианте мы захватим 1,3,4 строку. Можно конечно делить строки на две переменные, после чего первую через кубик If проверять на точное соответствие, но тогда в целом это все будет происходить достаточно долго.

Буду крайне благодарен за кусочек кода, который решит эту проблему.

Из таблицы можно брать строку, которая удовлетворяет регулярному выражению по точному совпадению, нужные ячейки этой строки записываются в переменные

51347
 
Например у нас есть имя Олег и массив из 11к вариантов комбинации имен, отчеств, фамилий + возраст:

Посмотреть вложение 51344

Нужно получить ячейку B4

Первое, что мне пришло в голову - это положить 11к вариантов в таблицу и просто брать оттуда все строки содержащие текст "Олег", но при таком варианте мы захватим 1,3,4 строку. Можно конечно делить строки на две переменные, после чего первую через кубик If проверять на точное соответствие, но тогда в целом это все будет происходить достаточно долго.

Буду крайне благодарен за кусочек кода, который решит эту проблему.

1) Искать совпадения по индексу - делаешь двумерный массив из всех данных. Проверяешь точное совпадение.
2) Делаешь словарь из своих данных и тогда:
C#:
Развернуть Свернуть Копировать
Dictionary<string,int> nameage = new Dictionary<string,int>();
nameage.Add("Олег",24);
nameage.Add("Олегуша",22);
nameage.Add("Лысый",46);
nameage.Add("ДенегНетЗовутОлег",33);
int value = 0;

if(nameage.TryGetValue("Олег",out value)) {
    project.SendInfoToLog(value.ToString()); //Возвращает 24, по полному совпадению. Только строки "Олег"
}
 

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