Ускорение работы со списком

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
790
Благодарностей
136
Баллы
43
Привет всем! Такое дело: есть список 1, в нём 600 000 строк. Есть список 2 - в него нужно положить из списка 1 32 000 строк. Данную операцию зеннопостер в C# коде обрабатывает за 6 минут. 6 минут, карл!! Может есть способ, как можно сделать это быстрее?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Код в ZP выполняли?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
790
Благодарностей
136
Баллы
43
как выглядит код?
Вот так:
PHP:
IZennoList spisok1 = project.Lists["Список 1"];
IZennoList spisok2 = project.Lists["Список 2"];
List<string> CHSList = new List<string>();
int total = 32000;
int intRandomNumber = 0;
string strRandomElement = String.Empty;
while (spisok2.Count < total) { try { intRandomNumber = new Random().Next(0, spisok1.Count);
strRandomElement = spisok1[intRandomNumber]; } catch { break; }
if (CHSList.Contains(strRandomElement)) continue;
spisok2.Add(strRandomElement); CHSList.Add(strRandomElement); 
}
/PHP]
 

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
790
Благодарностей
136
Баллы
43
Что-то нереально долго для такого кол-ва строк ... вероятнее всего проблема в реализации
Думаю да. Если убрать проверку на ЧС, то выполняет моментально, но по итогу - одни и те же строки в результирующем списке. Если брать с удалением - то всё ок. Но проверку на ЧС как ни крути, а надо делать. Но с ней невероятно долго выходит.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Логика плохая. Если в стартовом списке будет до 32к строк, так тогда сниппет вообще будет бесконечно выполняться. Просто перемешивай список и бери строки по порядку
 
  • Спасибо
Реакции: avtostopshik

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
790
Благодарностей
136
Баллы
43

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