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

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

gorin1

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

Вложения

  • Screen.jpg
    Screen.jpg
    37,1 KB · Просмотры: 252
Воспользуйся поиском "черный список", блэклист. Должно помочь.
 
  • Оценить
Реакции: Sergodjan
Помогите с простой задачей, плиз!
Есть два списка. Например, первый содержит строки "х" , "y", "z". Второй - "х" , "y". Задача: получить/оставить значения, которые не повторяются в двух списках. В данном случае - в первом списке должно остаться только "z" (ну или записать "z" в другой список или таблицу).
Вроде все просто - сижу, уже мозг сломал)))
Вот такой вариант подойдет.
Достоинство его - быстро переваривает большие объемы строк, не подавившись.
(приложил тестовый шаблон с этим методом)
 

Вложения

У меня в полезностях вот такой снипет завалялся.

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
У меня в полезностях вот такой снипет завалялся.

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
Простите, никогда не использовал снипет, прошу посмотреть скрин, что непраильно сделал (так как не работает)
 

Вложения

  • Screen_2.jpg
    Screen_2.jpg
    114,2 KB · Просмотры: 248
Всем спасибо, парни!!! :bf:
 

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