Сравнить два списка и взять совпадения

Geka1989

Client
Регистрация
17.12.2016
Сообщения
184
Благодарностей
23
Баллы
18
Как сравнить список 1 и список 2 построчно и все совпадения перенести в список три. То есть взять первую строку с удалением и пройтись полностью по списку 2 и взять все строки которые содержат совпадения
 

kapelan28

Client
Регистрация
22.09.2015
Сообщения
469
Благодарностей
186
Баллы
43
Как сравнить список 1 и список 2 построчно и все совпадения перенести в список три. То есть взять первую строку с удалением и пройтись полностью по списку 2 и взять все строки которые содержат совпадения
Самому помогли, когда-то, дали такой код, работает нормально.
Код:
List<string> bad = project.Lists["Old_anket_spisok"].ToList();//старый список URL
List<string> mix = project.Lists["new_spisok_anket"].ToList();//новый список URL
var good =project.Lists["out_spisok_anket"];//чистовой вариант URL
List<string> kostyl = new List<string>();//важный элемент индусского кода
//блок очень сложного индусского кода
kostyl=mix.Except(bad).ToList();
foreach(string data in kostyl)
{good.Add(data);}
 
Регистрация
26.05.2020
Сообщения
495
Благодарностей
172
Баллы
43
Занекропощу - а если у меня 3 списка? )))
И мне нужно получить из них одно или несколько значений, которые присутствуют во всех трех?
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Занекропощу - а если у меня 3 списка? )))
И мне нужно получить из них одно или несколько значений, которые присутствуют во всех трех?
C#:
/*создаю списки с тестовыми данными*/
var list1 = new List<string>(){"1","12","13","54"};//project.Lists["list1"];
var list2 = new List<string>(){"1","122","12","43"};//project.Lists["list2"];
var list3 = new List<string>(){"12","121","13","1"};//project.Lists["list3"];

/*фильтрую*/
var listres = list1.Where(x=>list2.Contains(x) && list3.Contains(x));
//project.Lists["listres"].AddRange(listres);//добавить результат в список проекта
project.SendInfoToLog(string.Join(",", listres));//посмотреть в лог
 
Регистрация
26.05.2020
Сообщения
495
Благодарностей
172
Баллы
43
C#:
/*создаю списки с тестовыми данными*/
var list1 = new List<string>(){"1","12","13","54"};//project.Lists["list1"];
var list2 = new List<string>(){"1","122","12","43"};//project.Lists["list2"];
var list3 = new List<string>(){"12","121","13","1"};//project.Lists["list3"];

/*фильтрую*/
var listres = list1.Where(x=>list2.Contains(x) && list3.Contains(x));
//project.Lists["listres"].AddRange(listres);//добавить результат в список проекта
project.SendInfoToLog(string.Join(",", listres));//посмотреть в лог
var list1 = new List<string>(){"1","12","13","54"};//project.Lists["temp"];

99969


а как вместо конструкции {"1","12","13","54"} подставить именно список temp??? я про сам синтаксис. Ваш код работает, но с перечислением значений вручную. Я хз, как это адаптировать )
 

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
546
Благодарностей
1 125
Баллы
93
var list1 = new List<string>(){"1","12","13","54"};//project.Lists["temp"];
а как вместо конструкции {"1","12","13","54"} подставить именно список temp??? я про сам синтаксис. Ваш код работает, но с перечислением значений вручную. Я хз, как это адаптировать )
C#:
var list1 = project.Lists["temp"];
 
Регистрация
26.05.2020
Сообщения
495
Благодарностей
172
Баллы
43
@Alexmd, @djaga - огромный вам респект, работает! :bp:
 
  • Спасибо
Реакции: che100 и djaga

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