Пересечение ID при парсинге групп

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93
Собираю базу ID пользователей по группам, примерно 14-16 групп, идет большое пересечение ID пользователей групп, как организовать парсинг так, что бы все ID были уникальны и сохранялись в отдельный файл по группам, а дубли удалялись

Парсер берет группу парсит ID, сохраняет в файл группы, берет следующую группу, парсит ID сохраняет файл другой группы и так я получаю 16 файлов с ID пользователей, и вот мне надо как то убрать пересечение ID пользователей во всех 16 файлах
 
Последнее редактирование:

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Удалять дубли после сбора - самый простой вариант.
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93
Удалять дубли после сбора - самый простой вариант.
Если бы было все так просто.
Парсер берет группу парсит ID, сохраняет в файл группы, берет следующую группу, парсит ID сохраняет файл другой группы и так я получаю 16 файлов с ID пользователей, и вот мне надо как то убрать пересечение ID пользователей во всех 16 файлах
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Добавляете результат в список, далее экшен Операции над списком, выбираете нужный список. После выгружаете список в файл.

upload_2016-11-8_11-53-35.png
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93
Добавляете результат в список, далее экшен Операции над списком, выбираете нужный список. После выгружаете список в файл.

Посмотреть вложение 16449
Мне не нужен один файл! мне нежно 16 файлов с разбивкой по группам, с удалением пересечений ID пользователей во всех файлах
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Создавайте 16, 160 файлов, кто Вам запрещает?
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93
Создавайте 16, 160 файлов, кто Вам запрещает?
Чувак, я понимаю что ты хочешь мне помочь, но ты ни как не можешь понять что мне надо! Поэтому пожалуйста перестань писать бредопосты.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Да ты сам весь во бреде чувак! Ты никак не хочешь понять что тебе говорят, как барашка...
 

Animal

Client
Регистрация
15.06.2016
Сообщения
733
Благодарностей
130
Баллы
43
Если бы было все так просто.
Парсер берет группу парсит ID, сохраняет в файл группы, берет следующую группу, парсит ID сохраняет файл другой группы и так я получаю 16 файлов с ID пользователей, и вот мне надо как то убрать пересечение ID пользователей во всех 16 файлах
Т.е., нужно удалить ID которые пересекаются?
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 312
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

  • Спасибо
Реакции: Dmitriy Ka

Animal

Client
Регистрация
15.06.2016
Сообщения
733
Благодарностей
130
Баллы
43
Да, и при этом оставить разбивку по файлам для каждой группы
На форуме человек решил данный вопрос кодом. Поищи, может найдешь. Или тебе в этой теме код снова кто-то черканет... что бы ты не перелопачивал весь форум по данному вопросу...
 
  • Спасибо
Реакции: Dmitriy Ka

Animal

Client
Регистрация
15.06.2016
Сообщения
733
Благодарностей
130
Баллы
43
Код:
var list = project.Lists["Список 1"];
var buffer = (from q in list
group q by q into l
where l.Count() == 1
select l.Key).ToList();
list.Clear();
list.AddRange(buffer);
Вот, нашел (Код CSharp) Только это код для удаления пересечений в одном списке.
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
230
Благодарностей
944
Баллы
93
Как вариант, пример сравнения с удалением пересечений конкретно нескольких списков
Код:
int listsCount = 4;    //Указываем число списков

Dictionary<int,IZennoList> dic = new Dictionary<int,IZennoList>();
dic.Add(0,project.Lists["Список 1"]);
dic.Add(1,project.Lists["Список 2"]);
dic.Add(2,project.Lists["Список 3"]);
dic.Add(3,project.Lists["Список 4"]);
//По аналогии можно добавить столько списков, сколько нужно

//Сравниваем все списки попарно, с удалением пересекающихся значений
for (int i=0; i<listsCount-1; i++){
    for (int j=i+1; j<listsCount; j++){
        var list1 = dic[i].ToList();
        var list2 = dic[j].ToList();
        var list3 = list1.Except(list2).ToList();
        dic[i].Clear();
        dic[i].AddRange(list3);
    }
}
 
  • Спасибо
Реакции: Dmitriy Ka

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93
Спасибо, то что надо, буду разбираться
 

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