Вычитание из одного списка другим списком?

Alex2006w

Новичок
Регистрация
29.07.2016
Сообщения
2
Благодарностей
0
Баллы
1
Как вычесть сразу строки из одного списка другим списком? Строки могут содержать различные символы!!!
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
нужно писать код. Либо кубиками перебором проверять наличии строки 1го списка во втором и удалять, если есть
 

Alex2006w

Новичок
Регистрация
29.07.2016
Сообщения
2
Благодарностей
0
Баллы
1
нужно писать код. Либо кубиками перебором проверять наличии строки 1го списка во втором и удалять, если есть
Может подскажите готовый код? А то кубиками долго получается при большом объеме
 

Mikhail B.

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

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
C#:
var lst1 = project.List["Список 1"];
var lst2 = project.List["Список 2"];
var rezLst = lst1.Except(lst2)
 
Последнее редактирование:

Nekro

Client
Регистрация
01.08.2020
Сообщения
232
Благодарностей
24
Баллы
18
C#:
var lst1 = project.List["Список 1"];
var lst2 = project.List["Список 2"];
var rezLst = lst1.Except(lst2)
Как исправить ошибку? Видимо надо дописывать в using код.

Ошибка в действии "CS1061" "'IZennoPosterProjectModel' does not contain a definition for 'List' and no accessible extension method 'List' accepting a first argument of type 'IZennoPosterProjectModel' could be found (are you missing a using directive or an assembly reference?)". [Строка: 2; Cтолбец: 20]
 

dr.reklam

Client
Регистрация
02.06.2020
Сообщения
64
Благодарностей
15
Баллы
8
Как исправить ошибку? Видимо надо дописывать в using код.

Ошибка в действии "CS1061" "'IZennoPosterProjectModel' does not contain a definition for 'List' and no accessible extension method 'List' accepting a first argument of type 'IZennoPosterProjectModel' could be found (are you missing a using directive or an assembly reference?)". [Строка: 2; Cтолбец: 20]

вот исправленный код:
C#:
var lst1 = project.Lists["Список 1"];
var lst2 = project.Lists["Список 2"];
var rezLst = lst1.Except(lst2);

была пропущена точка с запятой в последней строке, также вместо Lists было указано List
 

K R

Client
Регистрация
14.01.2017
Сообщения
127
Благодарностей
127
Баллы
43
Можно ещё использовать такой код:

C#:
/* ВЫЧИТАНИЕ ОДНОГО СПИСКА ИЗ ДРУГОГО
ПОЛЕЗНО ПРИ РЕАЛИЗАЦИИ ЧЁРНОГО СПИСКА */

// Добавить в OwnCode (Общий код) в конце:
/* namespace ZennoHelpers
{
    public class Locker
    {
        public static object CustomListSyncer = new object();
    }
} */

// BlackList - список с игнорируемыеми элементами
List<string> blackList = project.Lists["BlackList"].ToList();

 // SourceList - исходный список
List<string> sourceList = project.Lists["SourceList"].ToList();

// ResultList - результат вычитания исходного списка и чёрного списка
IZennoList resultList = project.Lists["ResultList"];

lock(ZennoHelpers.Locker.CustomListSyncer)
{
    List<string> exclude = new List<string>();
    exclude = sourceList.Except(blackList).ToList();
    resultList.AddRange(exclude);
}
Взято отсюда.
 

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