Jerard Client Регистрация 11.04.2013 Сообщения 506 Благодарностей 225 Баллы 43 08.10.2014 #1 В общем есть список 1, из него нужно удалить строки которые есть в списке 2. Записей много, около 1 млн. Щас сделано так: Но этот вариант занимает уж оочень много времени. Как можно сделать это быстрее?
В общем есть список 1, из него нужно удалить строки которые есть в списке 2. Записей много, около 1 млн. Щас сделано так: Но этот вариант занимает уж оочень много времени. Как можно сделать это быстрее?
rostonix Известная личность Регистрация 23.12.2011 Сообщения 29 067 Благодарностей 5 715 Баллы 113 08.10.2014 #2 Это выполнится В постере быстрее В PM отрисовка экшенов же. Последнее редактирование: 08.10.2014
Jerard Client Регистрация 11.04.2013 Сообщения 506 Благодарностей 225 Баллы 43 08.10.2014 #3 В том то и дело что не выполняется так... Браузер выключен. Но от файла ушел только 1мб за часа 2 наверно...
В том то и дело что не выполняется так... Браузер выключен. Но от файла ушел только 1мб за часа 2 наверно...
rostonix Известная личность Регистрация 23.12.2011 Сообщения 29 067 Благодарностей 5 715 Баллы 113 08.10.2014 #4 При работе в ZP?
Irbis Client Регистрация 02.03.2014 Сообщения 195 Благодарностей 120 Баллы 43 08.10.2014 #6 Попробуйте так: Код: lock(SyncObjects.ListSyncer) { List<string> list = new List<string>(project.Lists["Список 1"].Except(project.Lists["Список 2"]).ToList()); project.Lists["Список 1"].Clear(); foreach (var item in list) { project.Lists["Список 1"].Add(item); } } На 2-х ядерном процессоре по 3 ГГц код выполняется меньше секунды. В одном списке 1 млн. строк, во втором 500 тыс. Реакции: Respect, orka13, Shining и еще 2
Попробуйте так: Код: lock(SyncObjects.ListSyncer) { List<string> list = new List<string>(project.Lists["Список 1"].Except(project.Lists["Список 2"]).ToList()); project.Lists["Список 1"].Clear(); foreach (var item in list) { project.Lists["Список 1"].Add(item); } } На 2-х ядерном процессоре по 3 ГГц код выполняется меньше секунды. В одном списке 1 млн. строк, во втором 500 тыс.
rostonix Известная личность Регистрация 23.12.2011 Сообщения 29 067 Благодарностей 5 715 Баллы 113 08.10.2014 #7 Код поможет, да
Dailes Client Регистрация 27.05.2013 Сообщения 193 Благодарностей 76 Баллы 28 08.10.2014 #8 Если это для блэк листов то могу сниппет подкинуть
S spy686 Новичок Регистрация 27.08.2013 Сообщения 27 Благодарностей 1 Баллы 3 08.10.2014 #9 посмотри тут: https://drive.google.com/file/d/0BzFsqs5CEGL0cWFaVHo4QVhlcEk/view?usp=sharing Тут несколько вариантов программ. Для твоих целей что-то должно подойти
посмотри тут: https://drive.google.com/file/d/0BzFsqs5CEGL0cWFaVHo4QVhlcEk/view?usp=sharing Тут несколько вариантов программ. Для твоих целей что-то должно подойти
Ribas Client Регистрация 31.05.2014 Сообщения 1 440 Благодарностей 503 Баллы 113 09.10.2014 #10 В своё время для такой задачи пользовался вот этим сервисом - http://arcticlab.ru/tools/overlist/ получилось очень быстро и удобно.
В своё время для такой задачи пользовался вот этим сервисом - http://arcticlab.ru/tools/overlist/ получилось очень быстро и удобно.
gluckbahr Client Регистрация 05.04.2014 Сообщения 84 Благодарностей 25 Баллы 18 07.03.2015 #11 А как можно получить разницу если список из строк среди которых есть дубли, а второй тот же список, но без дублий? Как можно получить разницу среди них? Снипет оставляет список 1 пустым=( вот хочется извлечь именно те что дублируются
А как можно получить разницу если список из строк среди которых есть дубли, а второй тот же список, но без дублий? Как можно получить разницу среди них? Снипет оставляет список 1 пустым=( вот хочется извлечь именно те что дублируются
Shining Client Регистрация 25.05.2018 Сообщения 36 Благодарностей 0 Баллы 6 01.08.2019 #12 Irbis сказал(а): Попробуйте так: Код: lock(SyncObjects.ListSyncer) { List<string> list = new List<string>(project.Lists["Список 1"].Except(project.Lists["Список 2"]).ToList()); project.Lists["Список 1"].Clear(); foreach (var item in list) { project.Lists["Список 1"].Add(item); } } На 2-х ядерном процессоре по 3 ГГц код выполняется меньше секунды. В одном списке 1 млн. строк, во втором 500 тыс. Нажмите, чтобы раскрыть... Это именно то что так долго искал. Спасибо Большое за этот сниппет!
Irbis сказал(а): Попробуйте так: Код: lock(SyncObjects.ListSyncer) { List<string> list = new List<string>(project.Lists["Список 1"].Except(project.Lists["Список 2"]).ToList()); project.Lists["Список 1"].Clear(); foreach (var item in list) { project.Lists["Список 1"].Add(item); } } На 2-х ядерном процессоре по 3 ГГц код выполняется меньше секунды. В одном списке 1 млн. строк, во втором 500 тыс. Нажмите, чтобы раскрыть... Это именно то что так долго искал. Спасибо Большое за этот сниппет!