Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/40: Рейтинг темы: голосов - 40, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22

Данный ключ отсутствует в словаре. Dictionary

13.01.2020, 14:59. Показов 9410. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Выкладываю кусок кода. Проблема: когда запускаю программа пишет ошибку в строке 46. Почему? Почему он не переводит с английской раскладки на русскую..???

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
string En = "~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./↑←↓ ";
string Ru = "Ё!\"№;%:?*()_+ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,ё1234567890-=йцукенгшщзхъ\\фывапролджэячсмитьбю.↑←↓ ";
 
 
char[] enen = En.ToCharArray();
                    char[] ruru = Ru.ToCharArray();
                    char[] spsp = Sp.ToCharArray();
                    char[] spen = SpEn.ToCharArray();
 
                    int a = enen.Length;
                    int b = ruru.Length;
 
                    var dictionary = new Dictionary<char, char>();
                    for (int i = 0; i < a; i++)
                    {
 
                        dictionary.Add(enen[i], ruru[i]);
 
                    }
 
                   
    
            var result = new StringBuilder();
            int d = ruru.Length - 1;
            int f = enen.Length - 1;
 
            
 
            foreach (string str1 in mystr)
            {
                if (str1 == "::1033::") { isExist = true; }
                if (str1 == "::1049::") { isExist = false; }
 
 
                    if (isExist == true)
                    {
 
                        foreach (char j in str1)
                            result.Append(j);
  
                    }
 
                    else
                    {
                        foreach (char c in str1)
                            result.Append(dictionary[c]);
             
                }
            }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.01.2020, 14:59
Ответы с готовыми решениями:

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

"Ключ отсутствует в словаре" при заполнении Dictionary из файла
здравствуйте. у меня такая проблема. создаю словарь из файла и подсчитываю кол-во каждого слова в файле. выдает ошибку на строку 32....

Данный ключ отсутствует в словаре
Добрый вечер. Заранее извиняюсь за низкую осведомленность по теме. При написании работы столкнулся с данной ошибкой. Есть приложение...

23
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.01.2020, 15:08
Цитата Сообщение от Nibros Посмотреть сообщение
Почему он не переводит с английской раскладки на русскую..?
Потому что искомый символ отсутствует в словаре.
1
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 15:11  [ТС]
kolorotur, я пишу к примеру слово "Привет", если dictionary удалить то выводит "Ghbdtn", если оставить dictionary то выводит ошибку, но буквы то есть в словаре эти.

p.s. спс, что обратил внимание на тему
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.01.2020, 15:20
Цитата Сообщение от Nibros Посмотреть сообщение
я пишу к примеру слово "Привет"
После чего поиск символов производите в словаре dictionary, который составлялся из символов строки En, в которой нет букв "П", "р", "и", "в", "е" и "т".
1
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 15:23  [ТС]
kolorotur, подскажешь как сделать так чтобы на выходе было соответствие русских букв английским? как исправить ситуацию эту?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
13.01.2020, 15:25
Nibros,
... Dictionary не работает задом наперед ... у него слева - ключ, справа - значение ... составляйте второй словарь для обратной конвертации ...
0
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 15:39  [ТС]
carrotik, так у меня же идет сверка по словарю

C#
1
2
3
4
5
6
7
var dictionary = new Dictionary<char, char>();
                    for (int i = 0; i < a; i++)
                    {
 
                        dictionary.Add(enen[i], ruru[i]);
 
                    }
1 элемент английской раскладки сопоставляется 1 элементу русской, что не так?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.01.2020, 15:43
Цитата Сообщение от Nibros Посмотреть сообщение
что не так?
То, что вы проверяете русскую строку, а 1 элемент русской раскладки нигде не сопоставляется 1 элементу английской раскладки.
1
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 15:45  [ТС]
kolorotur, что надо дописать чтобы было сопостовление?
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,766
13.01.2020, 15:47
Цитата Сообщение от Nibros Посмотреть сообщение
что надо дописать чтобы было сопостовление?
Вам нужно два словаря, один En-Ru, второй Ru-En. И использовать один из них (или оба) в зависимости от условий задачи и входных данных.
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.01.2020, 15:48
Цитата Сообщение от Nibros Посмотреть сообщение
что надо дописать чтобы было сопостовление?
Товарищи carrotik и kotelok выше ответили:
Цитата Сообщение от carrotik Посмотреть сообщение
составляйте второй словарь для обратной конвертации
Цитата Сообщение от kotelok Посмотреть сообщение
Вам нужно два словаря, один En-Ru, второй Ru-En.
Только после этого у вас возникнет еще одна проблема: определить, на каком языке введен текст и какой словарь использовать, что в текущем варианте мне видится невозможным без дополнительной информации от пользователя или из системы.
1
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 15:51  [ТС]
Понял, спасибо всем.
0
 Аватар для Kazbek17
1483 / 938 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
13.01.2020, 16:21
Nibros, а что вам мешает сделать так.
C#
1
2
dictionary.Add(enen[i], ruru[i]);
dictionary.Add(ruru[i], enen[i]);
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.01.2020, 16:44
Kazbek17, незеркальность данных.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
13.01.2020, 16:58
Цитата Сообщение от kolorotur Посмотреть сообщение
незеркальность данных
почему?
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
13.01.2020, 17:06
Цитата Сообщение от Даценд Посмотреть сообщение
почему?
чем должно стать ...?
ююю или ///
0
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 17:08  [ТС]
И все же, как будет выглядеть словарь обратной конвертации как писали выше? Или есть идеи как можно исправить ситуацию?
0
 Аватар для Kazbek17
1483 / 938 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
13.01.2020, 17:20
КОП, А кто говорил про множественный ввод данных? Речь идет о символьном реверсе.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
13.01.2020, 17:27
Цитата Сообщение от Kazbek17 Посмотреть сообщение
Речь идет о символьном реверсе.
Имеется в виду, что невозможно определить исходную раскладку при вводе символов, имеющихся в обоих алфавитах.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
13.01.2020, 17:31
Цитата Сообщение от Kazbek17 Посмотреть сообщение
А кто говорил про множественный ввод данных? Речь идет о символьном реверсе.
ну вот в моем примере 3 символа.
Цитата Сообщение от Kazbek17 Посмотреть сообщение
dictionary.Add(enen[i], ruru[i]);
dictionary.Add(ruru[i], enen[i]);
так вот чем станет точка в вашем варианте и почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2020, 17:31
Помогаю со студенческими работами здесь

Данный ключ отсутствует в словаре
Создал проект MVC в VS2017. Открыл его в VS2013. Компилируется и запускается нормально. Но в файле контроллера почему-то не...

Ошибка при загрузке данных из бд в dataGrid1 "Данный ключ отсутствует в словаре"
Всем доброго времени суток. Заранее извиняюсь если данная тема уже подымалась. У меня при компиляции кода DataTable usertable =...

Словарь в словаре Dictionary
Всем доброго дня! Как инициализировать словарь вида: {15:{&quot;name&quot;:&quot;a&quot;, &quot;surname&quot;:&quot;b&quot;}, 17:{&quot;name&quot;:&quot;c&quot;,...

Использование массива в словаре Dictionary
Приветствую. Помогите разобраться. Есть словарь и класс, который является значением словаря. Если я беру просто поле типа int, string и...

Поиск типа объекта в словаре Dictionary<>
Здравствуйте. Подскажите, как мне осуществить поиск по типа объекта в словаре? У меня есть словарь, в котором содержатся экземпляры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru