Работа со списками: как удалить дубли?

gorin1

Новичок
Регистрация
08.01.2017
Сообщения
10
Благодарностей
0
Баллы
1
Помогите с простой задачей, плиз!
Есть два списка. Например, первый содержит строки "х" , "y", "z". Второй - "х" , "y". Задача: получить/оставить значения, которые не повторяются в двух списках. В данном случае - в первом списке должно остаться только "z" (ну или записать "z" в другой список или таблицу).
Вроде все просто - сижу, уже мозг сломал)))
 

Вложения

Danko33

Client
Регистрация
07.03.2019
Сообщения
69
Благодарностей
23
Баллы
8
Воспользуйся поиском "черный список", блэклист. Должно помочь.
 
  • Спасибо
Реакции: Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 115
Баллы
113
Помогите с простой задачей, плиз!
Есть два списка. Например, первый содержит строки "х" , "y", "z". Второй - "х" , "y". Задача: получить/оставить значения, которые не повторяются в двух списках. В данном случае - в первом списке должно остаться только "z" (ну или записать "z" в другой список или таблицу).
Вроде все просто - сижу, уже мозг сломал)))
Вот такой вариант подойдет.
Достоинство его - быстро переваривает большие объемы строк, не подавившись.
(приложил тестовый шаблон с этим методом)
 

Вложения

Danko33

Client
Регистрация
07.03.2019
Сообщения
69
Благодарностей
23
Баллы
8
У меня в полезностях вот такой снипет завалялся.

C#:
var firstList = project.Lists["ListUserBl"];//["firstList"]
var secondList = project.Lists["ListUser"];//["secondList"]
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < firstList.Count; i++)
    {
        var str1 = firstList[i];
        for(int j=secondList.Count-1; j >= 0; j--)
        {
               var str2 = secondList[j];
            if (str1==str2)
            {
                secondList.RemoveAt(j);
            }       
        }       
    }
}
//в списке firstList архив старых данных в списке secondList
//новые данные после выполнения кода в secondList останутся только значения,
//которых нет в firstList
 
  • Спасибо
Реакции: zennoX, gorin1 и Sergodjan

gorin1

Новичок
Регистрация
08.01.2017
Сообщения
10
Благодарностей
0
Баллы
1
У меня в полезностях вот такой снипет завалялся.

C#:
var firstList = project.Lists["ListUserBl"];//["firstList"]
var secondList = project.Lists["ListUser"];//["secondList"]
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < firstList.Count; i++)
    {
        var str1 = firstList[i];
        for(int j=secondList.Count-1; j >= 0; j--)
        {
               var str2 = secondList[j];
            if (str1==str2)
            {
                secondList.RemoveAt(j);
            }      
        }      
    }
}
//в списке firstList архив старых данных в списке secondList
//новые данные после выполнения кода в secondList останутся только значения,
//которых нет в firstList
Простите, никогда не использовал снипет, прошу посмотреть скрин, что непраильно сделал (так как не работает)
 

Вложения

Platon

Client
Регистрация
26.09.2015
Сообщения
260
Благодарностей
122
Баллы
43

gorin1

Новичок
Регистрация
08.01.2017
Сообщения
10
Благодарностей
0
Баллы
1

gorin1

Новичок
Регистрация
08.01.2017
Сообщения
10
Благодарностей
0
Баллы
1
Всем спасибо, парни!!! :bf:
 

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