Как Сравнить два списка?

atheroth

Client
Регистрация
06.06.2014
Сообщения
127
Благодарностей
17
Баллы
18
Привет всем. Уже часа 3 ломаю голову. Может зенкой можно решить такую задачу.

В общем, есть два списка. Нужно сравнить их и удалить только УНИКАЛЬНЫЕ значения. Значения текстовые.

Ексель можно удалить только дубли. А мне наоборот нужно. Помогите плиз :-)
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83

atheroth

Client
Регистрация
06.06.2014
Сообщения
127
Благодарностей
17
Баллы
18
Или если можно с 1 списка. Я сделаю все в один список, и удалить только уникальные.
 

atheroth

Client
Регистрация
06.06.2014
Сообщения
127
Благодарностей
17
Баллы
18
Сейчас затестим))) Огромное спасибо_
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
var list1 = project.Lists["list1"];//список 1
var list2 = project.Lists["list2"];//список 2
var list3 = project.Lists["list3"];//выходной список
list3.Clear();
list1.Except(list2).Concat(list2.Except(list1)).ToList().ForEach(s=>list3.Add(s));
return string.Join(", ", list3.ToArray());//смотрим что получилось
 
  • Спасибо
Реакции: dio-dev и sentinel

canroy

Client
Регистрация
18.03.2018
Сообщения
186
Благодарностей
28
Баллы
28
Подскажите, как положить в выходной список не уникальные строки, а дубли?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
  • Спасибо
Реакции: canroy

canroy

Client
Регистрация
18.03.2018
Сообщения
186
Благодарностей
28
Баллы
28

dio-dev

Client
Регистрация
05.11.2018
Сообщения
149
Благодарностей
54
Баллы
28
  • Спасибо
Реакции: canroy

canroy

Client
Регистрация
18.03.2018
Сообщения
186
Благодарностей
28
Баллы
28
Сложи два списка в один.
не совсем то что мне нужно было, если кому вдруг нужно будет то вот сниппет которым решил трабл
Код:
var list1 = project.Lists["список1"];
var list2 = project.Lists["список2"];
var list3 = list1.Intersect(list2);
project.Lists["дубли между двумя списками выше"].AddRange(list3);
 

Agent

Client
Регистрация
25.12.2018
Сообщения
156
Благодарностей
48
Баллы
28
Надстройка PLEX для Excel как вариант.
 

Sewanew

Пользователь
Регистрация
28.01.2017
Сообщения
134
Благодарностей
3
Баллы
18
поясню изначально что планировалось, zp пишет только тем кому он ещё не писал, поэтому в одну переменную берём имя того кому пишем, а в другую список кому уже писали, и как то надо сравнить эти две переменные, что бы понять отправлялось ли сообщение этому idname или еще нет.
 

Sewanew

Пользователь
Регистрация
28.01.2017
Сообщения
134
Благодарностей
3
Баллы
18

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
254
Баллы
63
не совсем то что мне нужно было, если кому вдруг нужно будет то вот сниппет которым решил трабл
Код:
var list1 = project.Lists["список1"];
var list2 = project.Lists["список2"];
var list3 = list1.Intersect(list2);
project.Lists["дубли между двумя списками выше"].AddRange(list3);
Полезный код... но нашлась задачка которую не покрывает:
• есть чистый чистый список (список 3)
• есть список (список 1) с данными типа ключ: частотность. Пример строки выглядит так: купить холодильник: 41131
• есть второй список (список 2) который содержит только ключ (без частотности). т.е. строка будет иметь вид купить холодильник

Задача: необходимо сравнить список 1 и список 2, и когда ключ совпадает -- положить всю строку из список 1 в список 3 (с частотностью, вида купить холодильник: 41131)
 

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