Удаление строк из списка

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Здравствуйте)
Как реализовать решение задачи:

2 списка один на 100 строк урлов, второй на 5 урлов

нужно из первого списка найти эти 5 урлов и удалить
 

K R

Client
Регистрация
14.01.2017
Сообщения
83
Благодарностей
76
Баллы
18
Вот решение на C#, взято отсюда.
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);
}
 

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Чтото у меня не получилось((
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 364
Благодарностей
957
Баллы
113
Я вот так чищу:

C#:
var list1 = project.Lists["Полный список"];
var list2 = project.Lists["Короткий список"];

var list3 = list1.Except(list2);

project.Lists["Конечный список после исключения"].AddRange(list3);
Соответственно, названия списков вставляем свои ))
 

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Я вот так чищу:

C#:
var list1 = project.Lists["Полный список"];
var list2 = project.Lists["Короткий список"];

var list3 = list1.Except(list2);

project.Lists["Конечный список после исключения"].AddRange(list3);
Соответственно, названия списков вставляем свои ))
Спасибо)
Попробую
 

K R

Client
Регистрация
14.01.2017
Сообщения
83
Благодарностей
76
Баллы
18

Вложения

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

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Сработало))
Спасибо

Только в конце списка отобранных строк цифры появились, они откуда?
 

Вложения

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
и в исходном списке 5 строк последних продублировалось и тоже внизу цифры появились
А еще между строками были отступы в исходном файле они пропали
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 364
Благодарностей
957
Баллы
113
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
 

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
сейчас ваш попробую)
 

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
Прошу прощения, с вашим начал работать кодом, но потом прислали готовый вариант и переключился на него))
 

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
Ваш тоже работает, но также отступы между строками пропадают, цифры не появляются
 

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Можно в исходном файле эти строки просто вычесть, без возврата в другой список?
 

K R

Client
Регистрация
14.01.2017
Сообщения
83
Благодарностей
76
Баллы
18

Вложения

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 364
Благодарностей
957
Баллы
113
Разбирайся со списками, не исключено, что криво сформированы (может, разделители разные или, наоборот, что-то в качестве разделителя, что есть в самом тексте). Код банальнейший, просто вычитает одно из другого, юзаю несколько лет. Показал бы списки, было бы проще ))
ps. А, у тебя еще и файлы, а не просто списки. Надо было сразу обозначать. И список к файлу, наверное, сразу в настройках списка привязан?
 

lesssss81

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

Вложения

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Разбирайся со списками, не исключено, что криво сформированы (может, разделители разные или, наоборот, что-то в качестве разделителя, что есть в самом тексте). Код банальнейший, просто вычитает одно из другого, юзаю несколько лет. Показал бы списки, было бы проще ))
ps. А, у тебя еще и файлы, а не просто списки. Надо было сразу обозначать. И список к файлу, наверное, сразу в настройках списка привязан?
В качестве разделителя просто отступ - enter
списки - в текстовом документе
В принципе если в отступ вставлять любые символы (например ===) , то код их осталяет и в списе тогда они остаются разделенными
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 364
Благодарностей
957
Баллы
113
Ладно, вопрос был изначально в том, как сопоставить два списка )) Оно работает.
Что там в итоге в эти списки и как попадает, это уже другой вопрос )) Углубляться не готов. Советую пересмотреть логику того, как у тебя формируются списки и что в них находится перед "исключением" ))
Привязки к файлам тоже лучше делать через кубики, а не через настройки в списках. Это в принципе правильно при работе с Зеннопостером, избавляет от кучи проблем ))
Удачи.
 
  • Спасибо
Реакции: lesssss81

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
Всем спасибо!!!
:-))
 

K R

Client
Регистрация
14.01.2017
Сообщения
83
Благодарностей
76
Баллы
18
Нашел откуда цифры появляются)

А так ничего не произошло
А как вам доступно показать, что код работает? Добавляем в списки числа. В список SourceList добавлены числа от 1 до 100. В список BlackList добавлены рандомные числа.
После выполнения кода в списке SourceList останутся только те числа (т.е. строки), которых нет в списке BlackList.

Вместо кубиков добавления текста в списки SourceList и BlackList добавьте кубики привязки к этим спискам файлов, с которыми работаете.
 
  • Спасибо
Реакции: lesssss81

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
А как вам доступно показать, что код работает? Добавляем в списки числа. В список SourceList добавлены числа от 1 до 100. В список BlackList добавлены рандомные числа.
После выполнения кода в списке SourceList останутся только те числа (т.е. строки), которых нет в списке BlackList.

Вместо кубиков добавления текста в списки SourceList и BlackList добавьте кубики привязки к этим спискам файлов, с которыми работаете.
ааа
понял)
Спасибо огромное за участие в вопросе!
 

lesssss81

Client
Регистрация
10.03.2017
Сообщения
638
Благодарностей
27
Баллы
28
А этот код еще дубли убирает? я ставлю в качестве разделителя =========
первые полоски есть, потом пропадают и все что я использую в качестве разделителя также исчезает

p.s

в принципе работает, если ставить в качестве разделителя1, 2, 3, 4 и т.д. если ставить одинаковые символы, то код дубли убирает
 
Последнее редактирование:

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