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

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
227
Благодарностей
340
Баллы
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";
}
Спасибо всем кто откликнулся
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
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

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
227
Благодарностей
340
Баллы
63
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]
 

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
227
Благодарностей
340
Баллы
63
А также есть возможность чтобы если выходило по зеленой ветке т.е. не было дублей выполнялся этот код
Код:
int x = Convert.ToInt32(project.Variables["how_group"].Value);
x = x + 20;
project.Variables["how_group"].Value = Convert.ToString(x);
Благодарю всех за советы
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
  • Спасибо
Реакции: Dorian_Gray

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
227
Благодарностей
340
Баллы
63
Может быть моя логическая ошибка, но снипет не работает должным образом. сейчас идет по красной после одного прохода по списку т.е. даже если дублей между собой в списке нет, но его проверили на дубли 2 раз и не нашли их все равно уходим по красной. Предполагаю из за List<string> t2
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Может быть моя логическая ошибка, но снипет не работает должным образом. сейчас идет по красной после одного прохода по списку т.е. даже если дублей между собой в списке нет, но его проверили на дубли 2 раз и не нашли их все равно уходим по красной. Предполагаю из за List<string> t2
дублей нет https://gyazo.com/1f4d428717512a1b81816b3df5be1747
дубли есть https://gyazo.com/ac7dec5540f3dce043b0e271f3a5e50f
 
  • Спасибо
Реакции: Dorian_Gray

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