Подскажите с синтаксисом, как удалить дубли в списке с помощью C# с дальнейшим выходом по красной

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

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
227
Реакции
341
Баллы
63
Пример не рабочего кода с описанием функций
Код:
Развернуть Свернуть Копировать
var t1 = project.Lists["list"];
t1 = t1.Distinct().ToList();
if (Regex.Match(str, @"").Success)
{
    // Если в списке нету дублей идем по зеленой ветке
    return true;
}
else
{
    //Если в списке были дубли и мы их удалили выходим по красной
    throw new Exception();
}
Пример похожего рабочего кода, но не подходящего нам т.к. там идет поиск по regex и немного другой if
Код:
Развернуть Свернуть Копировать
var parserRegexPattern =project.Variables["ID"].Value ;
var parserRegex = new System.Text.RegularExpressions.Regex(parserRegexPattern);
// получаем список, в котором будем искать
var sourceList = project.Lists["articlebody"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++)
{
var str = sourceList[i];
// проверяем строку регулярным выражением, если есть совпадение кладем результат во второй список
if (parserRegex.Match(str).Success)
return sourceList.IndexOf(str);
}
return "Not Found";
}

Спасибо всем кто откликнулся
 
C#:
Развернуть Свернуть Копировать
var t1 = project.Lists["list"];
List<string> t2 = t1.Distinct().ToList();
if (t2.Count<t1.Count)
{
    //Если в списке были дубли и мы их удалили выходим по красной
    lock(SyncObjects.ListSyncer)
    {
        t1.Clear();
        t1.AddRange(t2);
    }
    throw new Exception();
}
 
Последнее редактирование:
  • Спасибо
Реакции: arhip1985 и Dorian_Gray
C#:
Развернуть Свернуть Копировать
var t1 = project.Lists["list"];
List<string> t2 = t1.Distinct().ToList();
if (t2.Count<t1.Count)
{
    //Если в списке были дубли и мы их удалили выходим по красной
    lock(SyncObjeects.ListSyncer)
    {
        t1.Clear();
        t1.AddRange(t2);
    }
    throw new Exception();
}
Компиляция кода Ошибка в действии "CS0103" "Имя "SyncObjeects" отсутствует в текущем контексте". [Строка: 5; Cтолбец: 10]
 
А также есть возможность чтобы если выходило по зеленой ветке т.е. не было дублей выполнялся этот код
Код:
Развернуть Свернуть Копировать
int x = Convert.ToInt32(project.Variables["how_group"].Value);
x = x + 20;
project.Variables["how_group"].Value = Convert.ToString(x);
Благодарю всех за советы
 
  • Спасибо
Реакции: Dorian_Gray
Может быть моя логическая ошибка, но снипет не работает должным образом. сейчас идет по красной после одного прохода по списку т.е. даже если дублей между собой в списке нет, но его проверили на дубли 2 раз и не нашли их все равно уходим по красной. Предполагаю из за List<string> t2
 
Может быть моя логическая ошибка, но снипет не работает должным образом. сейчас идет по красной после одного прохода по списку т.е. даже если дублей между собой в списке нет, но его проверили на дубли 2 раз и не нашли их все равно уходим по красной. Предполагаю из за List<string> t2
дублей нет https://gyazo.com/1f4d428717512a1b81816b3df5be1747
дубли есть https://gyazo.com/ac7dec5540f3dce043b0e271f3a5e50f
 
  • Спасибо
Реакции: Dorian_Gray

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