Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 11:54   #1
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию .NET STL

Я использую класс ListDictionary для сопоставления пар ключ (символ) - значение (строка), т. е. по известному символу я получаю соответствующую строку. Появилась обратная задача: по строке получить символ (все пары те же самые) как это проще всего сделать? есть ли какой-нибудь специальный шаблон, состоящий из пар ключей, а не пар ключ-значение?
ds.Dante вне форума Ответить с цитированием
Старый 09.09.2009, 12:31   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Придумал такой вариант:
Код:
MyList.Add ('A', "StringA");
MyList.Add ('B', "StringB");
MyList.Add ('C', "StringC");

MyList.Add ("StringA", 'A');
MyList.Add ("StringB", 'B');
MyList.Add ("StringC", 'C');
Интересно, можно ли это сделать еще проще?
ds.Dante вне форума Ответить с цитированием
Старый 09.09.2009, 13:44   #3
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Можно. Используй одну коллекцию, просто делай поиск в первом случае по ключу, а во втором по значению(через foreach).
Hollander вне форума Ответить с цитированием
Старый 30.09.2009, 23:54   #4
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

try using something like this...

Код:
private char GetIndex(Dictionary<char, string> dic, string findText)
        {
            char chResult = Char.MinValue;
            foreach (KeyValuePair<char, string> pair in dic)
            {
                if (pair.Value == findText)
                {
                    chResult = pair.Key;
                    break;
                }
            }
            return chResult;
        }
akasex вне форума Ответить с цитированием
Старый 01.10.2009, 13:17   #5
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Благодарю. Такой вариант, кстати, подойдет, например, для Dictionary<int,string>, т. е. если нельзя поменять местами ключ и значение. Мне как раз уже второй раз встретилась такая ситуация.
ds.Dante вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STL Cpluser Общие вопросы C/C++ 4 07.05.2009 12:21
STL Cpluser Общие вопросы C/C++ 2 22.02.2009 23:35
[C++]STL Mumriksnus Общие вопросы C/C++ 1 02.07.2008 20:43