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

  • Автор темы Автор темы lesssss81
  • Дата начала Дата начала

lesssss81

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

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

нужно из первого списка найти эти 5 урлов и удалить
 
Вот решение на 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);
}
 
Чтото у меня не получилось((
 
Я вот так чищу:

C#:
Развернуть Свернуть Копировать
var list1 = project.Lists["Полный список"];
var list2 = project.Lists["Короткий список"];

var list3 = list1.Except(list2);

project.Lists["Конечный список после исключения"].AddRange(list3);

Соответственно, названия списков вставляем свои ))
 
Я вот так чищу:

C#:
Развернуть Свернуть Копировать
var list1 = project.Lists["Полный список"];
var list2 = project.Lists["Короткий список"];

var list3 = list1.Except(list2);

project.Lists["Конечный список после исключения"].AddRange(list3);

Соответственно, названия списков вставляем свои ))
Спасибо)
Попробую
 

Вложения

  • Оценить
Реакции: lesssss81
Сработало))
Спасибо

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

Вложения

  • ЦИФРЫ.jpg
    ЦИФРЫ.jpg
    33,5 KB · Просмотры: 100
и в исходном списке 5 строк последних продублировалось и тоже внизу цифры появились
А еще между строками были отступы в исходном файле они пропали
 
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
 
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
сейчас ваш попробую)
 
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
Прошу прощения, с вашим начал работать кодом, но потом прислали готовый вариант и переключился на него))
 
Думается, как минимум, стоило бы сказать, какой код именно сработал, чтобы можно было искать вариант, что за цифры. Но, думается, они в первоначальном списке могли быть (ну, по крайней мере, у меня с тем кодом, что я написал, проблем не возникало никогда с фантомными строками) ))
Ваш тоже работает, но также отступы между строками пропадают, цифры не появляются
 
Можно в исходном файле эти строки просто вычесть, без возврата в другой список?
 

Вложения

Разбирайся со списками, не исключено, что криво сформированы (может, разделители разные или, наоборот, что-то в качестве разделителя, что есть в самом тексте). Код банальнейший, просто вычитает одно из другого, юзаю несколько лет. Показал бы списки, было бы проще ))
ps. А, у тебя еще и файлы, а не просто списки. Надо было сразу обозначать. И список к файлу, наверное, сразу в настройках списка привязан?
 
Разбирайся со списками, не исключено, что криво сформированы (может, разделители разные или, наоборот, что-то в качестве разделителя, что есть в самом тексте). Код банальнейший, просто вычитает одно из другого, юзаю несколько лет. Показал бы списки, было бы проще ))
ps. А, у тебя еще и файлы, а не просто списки. Надо было сразу обозначать. И список к файлу, наверное, сразу в настройках списка привязан?
В качестве разделителя просто отступ - enter
списки - в текстовом документе
В принципе если в отступ вставлять любые символы (например ===) , то код их осталяет и в списе тогда они остаются разделенными
 
Ладно, вопрос был изначально в том, как сопоставить два списка )) Оно работает.
Что там в итоге в эти списки и как попадает, это уже другой вопрос )) Углубляться не готов. Советую пересмотреть логику того, как у тебя формируются списки и что в них находится перед "исключением" ))
Привязки к файлам тоже лучше делать через кубики, а не через настройки в списках. Это в принципе правильно при работе с Зеннопостером, избавляет от кучи проблем ))
Удачи.
 
  • Оценить
Реакции: lesssss81
Всем спасибо!!!
:))
 
Нашел откуда цифры появляются)

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

Вместо кубиков добавления текста в списки SourceList и BlackList добавьте кубики привязки к этим спискам файлов, с которыми работаете.
 
  • Оценить
Реакции: lesssss81
А как вам доступно показать, что код работает? Добавляем в списки числа. В список SourceList добавлены числа от 1 до 100. В список BlackList добавлены рандомные числа.
После выполнения кода в списке SourceList останутся только те числа (т.е. строки), которых нет в списке BlackList.

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

p.s

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

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