Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Das_one
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 5
#1

Как оптимизировать программу?

08.01.2018, 09:57. Просмотров 168. Ответов 7
Метки нет (Все метки)

Программа предназначена для отбора существительных методом перебора (других способов найти не удалось)
Суть в том, что словарь очень большой и программа выполняется уже более часа
Возможно ли как-нибудь сократить время работы?
Сразу скажу, что массив не вмещает такое количество строк
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void Noun (Word[] a)
        {
            
            string n = "";
            for (int i = 0; i < a.Length; i++)
            {
                StreamReader reader = new StreamReader("noun.txt");
                n = reader.ReadLine();
                while (n != null) ;
                    if (a[i].NameWord == n)
                    {
                        a[i].Noun = true;
                        reader.Close();
                        break;
                    }
                    else
                        a[i].Noun = false;
                reader.Close();
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2018, 09:57
Ответы с готовыми решениями:

Оптимизировать программу, которая рассчитывает повторение каждой буквы и сочетания из двух букв
Посоветуйте, как можно существенно оптимизировать код. Программа рассчитывает...

PictureBox, как убрать задержку, как оптимизировать код?
Добрый день! Я не программист, и далек от программирования, но появилась...

Как оптимизировать цикл?
Здравствуйте, уважаемые форумчане. Помогите оптимизировать часть кода...

Как оптимизировать код?
как привести это в красивый вид? если учесть что таких label будет over 100 А...

Как оптимизировать WindowsForms для Mac OS
Есть приложение WindowsForms на Windows. Каким образом переделать его в .dmg,...

7
SeIZVeIZ
661 / 615 / 258
Регистрация: 08.02.2014
Сообщений: 1,890
Завершенные тесты: 3
08.01.2018, 10:07 #2
Очень странно что ты ещё не споймал OutOfMemory твой while цикл не рабочий
0
Das_one
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 5
08.01.2018, 10:09  [ТС] #3
Окей, а почему не рабочий?
0
SeIZVeIZ
661 / 615 / 258
Регистрация: 08.02.2014
Сообщений: 1,890
Завершенные тесты: 3
08.01.2018, 10:11 #4
во первых ; после условия цикла
во вторых даже если он пройдёт дальше ты если ничего не нашёл не считываешь следующую строку и получается если строка не равна ты крутишь по кругу один и тот же цикл
1
Das_one
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 5
08.01.2018, 10:13  [ТС] #5
Вот черт, спасибо
Мне определенно нужен сон
0
SeIZVeIZ
661 / 615 / 258
Регистрация: 08.02.2014
Сообщений: 1,890
Завершенные тесты: 3
08.01.2018, 10:15 #6
Das_one, попробуй вот так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
using (StreamReader reader = new StreamReader("noun.txt"))
            {
                string n = reader.ReadLine();
 
                while (n != null)
                {
                    var findItem = a.FirstOrDefault(x => x.NameWord == n);
                    if (findItem != null)
                        findItem.Noun = true;
                    n = reader.ReadLine();
                }
            }
если ничего не найдено то по норме у объекта уже должно стоять по умолчанию false так что проставляем только true
0
Someone007
2177 / 1766 / 798
Регистрация: 09.05.2015
Сообщений: 4,365
Завершенные тесты: 1
08.01.2018, 10:53 #7
C#
1
2
3
4
5
6
7
8
9
10
        private void Noun(Word[] a)
        {
            var lines = File.ReadLines("noun.txt");
 
            foreach (var line in lines)
            {
                Word word = a.FirstOrDefault(w => w.NameWord == line);
                word?.Noun = true;
            }
        }
0
Diamante
1269 / 1025 / 649
Регистрация: 14.08.2016
Сообщений: 3,553
Завершенные тесты: 1
09.01.2018, 01:39 #8
для очень быстрого поиска(максимальной скорости) используй
C#
1
HashSet<string>()
0
09.01.2018, 01:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2018, 01:39

Как оптимизировать код DataGridView (SQLite)?
Вопрос в том,как из этого говно кода сделать,чтото похожее на нормальную...

Как можно оптимизировать операции с датами?
Программа в ходе своей работы анализирует большой объём данных, при этом...

Как оптимизировать применение регулярных выражений
Как оптимизировать следующий код? string a2 = Regex.Replace(x, p, @&quot;$4&quot;,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru