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

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

13.01.2020, 14:59. Показов 9806. Ответов 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
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 17:32  [ТС]
Студворк — интернет-сервис помощи студентам
Даценд, зато можно определить раскладку системы в момент ввода символов, от этого и отталкиваюсь
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
13.01.2020, 17:37
Цитата Сообщение от Nibros Посмотреть сообщение
зато можно определить раскладку системы в момент ввода символов
ну тогда сделайте словарь с двумя наборами, как предложил Kazbek17
0
1 / 1 / 0
Регистрация: 19.04.2011
Сообщений: 22
13.01.2020, 17:46  [ТС]
Даценд, так сделал, все равно ошибку такую же выдает, не понимаю в чем проблема..

нужно чтобы при раскладке 1049 вместо английских букв были русские, не получается перевести их, поэтому прощу помощи)

Добавлено через 6 минут
Пишет ошибку: "Элемент с тем же ключом уже был добавлен."


C#
1
2
dictionary.Add(enen[i], ruru[i]);
dictionary.Add(ruru[i], enen[i]);
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,870
13.01.2020, 17:49
Лучший ответ Сообщение было отмечено Nibros как решение

Решение

Nibros, вот как вариант.
Класс
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class CollectionKeyWord : List<Tuple<char, char>>
        {
            public char this[char _char]
            {
                get
                {
                    char value = default;
                    Tuple<char, char> getChar = this.Find(x => x.Item1 == _char);
                    if (getChar != null)
                        value = getChar.Item2;
                    else
                        value = this.Find(x => x.Item2 == _char).Item1;
                    return value;
                }
            }
        }


Заполняем словарь
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CollectionKeyWord dictionary = new CollectionKeyWord();
        private void btSave_Click(object sender, EventArgs e)
        {
            string En = "~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./↑←↓ ";
            string Ru = "Ё!\"№;%:?*()_+ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,ё1234567890-=йцукенгшщзхъ\\фывапролджэячсмитьбю.↑←↓ ";
 
 
            char[] enen = En.ToCharArray();
            char[] ruru = Ru.ToCharArray();
 
            int b = ruru.Length;
 
            Tuple<char,char> tuple;
            for (int i = 0; i < En.ToCharArray().Length; i++)
            {
                tuple = new Tuple<char, char>(enen[i], ruru[i]);
                dictionary.Add(tuple);
            }
        }
Получаем результат в двух направления
C#
1
2
3
4
       private void textBox1_TextChanged(object sender, EventArgs e)
        {
            textBox2.Text = dictionary[textBox1.Text[0]].ToString();
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2020, 17:49

Данный ключ отсутствует в словаре
Создал проект 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<>
Здравствуйте. Подскажите, как мне осуществить поиск по типа объекта в словаре? У меня есть словарь, в котором содержатся экземпляры...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru