Пустые строки и дубли в списках

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Тут часто задают как удалить дубли и пустые строки в списке, конечно я себе нашаманил код что бы он удалял это всё но от скуки и делать нечего решил ещё сократить и усовершентсвовать)), может и нет)), собрал вот такую конструкцию по удалению дублей и пустых строк, понимаю что у многих кто отлично понимает в коде это уже давно реализованно. Кто подскажет как в этом снипете прикрутить Trim, надеюсь кто догадается выложит обнову этого снипета с тримом)))
Код:
// УДАЛЯЕМ ДУБЛИ и пустые строки
List<string> list = project.Lists["OutputList"].ToList();
project.Lists["OutputList"].Clear();
list.Where(s=>s!=string.Empty).Distinct()
    .Select(s=>s.ToLower())
    .ToList()
    .ForEach(s=>project.Lists["OutputList"].Add(s));
 
  • Спасибо
Реакции: deopl

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
list.Where(s=>s.Trim()!=string.Empty).Distinct()

так по идее
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  • Спасибо
Реакции: deopl

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
или я выспался хорошо или rostonix ты меня на мысль навёл внутри скобках поставить Trim, а то я всё пытался за ними поставить, но вроде решение вот так правильно, может и немного не правильно с точки зрения програмистов, но работает
Код:
// УДАЛЯЕМ ДУБЛИ и пустые строки
List<string> list = project.Lists["OutputList"].ToList();
project.Lists["OutputList"].Clear();
list.Where(s=>s!=string.Empty).Distinct()
    .Select(s=>s.ToLower())
    .ToList()
    .ForEach(s=>project.Lists["OutputList"].Add(s.Trim()));
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
если тримать только при добавлении нужно, то да, так должно работать
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  • Спасибо
Реакции: deopl

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Благодарностей
3
Баллы
18
У меян не работает, не пойму по чему.. Список к файлуне привязан, но вписан в снипет, он отрабатывает успешно, но ничего не удаляет, возвращает в список все как и было с пробелами в пустых строках, пустыми строками и дублями, как почистить список? С помощью с#?
 

deopl

Client
Регистрация
06.12.2011
Сообщения
667
Благодарностей
126
Баллы
43
или я выспался хорошо или rostonix ты меня на мысль навёл внутри скобках поставить Trim, а то я всё пытался за ними поставить, но вроде решение вот так правильно, может и немного не правильно с точки зрения програмистов, но работает
Код:
// УДАЛЯЕМ ДУБЛИ и пустые строки
List<string> list = project.Lists["OutputList"].ToList();
project.Lists["OutputList"].Clear();
list.Where(s=>s!=string.Empty).Distinct()
    .Select(s=>s.ToLower())
    .ToList()
    .ForEach(s=>project.Lists["OutputList"].Add(s.Trim()));
в списке одинаковые значения
После выполнения

Список пустой остается
 

deopl

Client
Регистрация
06.12.2011
Сообщения
667
Благодарностей
126
Баллы
43
удалить
 

Mr-Grey

Client
Регистрация
03.02.2016
Сообщения
88
Благодарностей
6
Баллы
8
Ну так что? Как удалить то?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
да что у вас не удаляется ???
 
  • Спасибо
Реакции: deopl

Mr-Grey

Client
Регистрация
03.02.2016
Сообщения
88
Благодарностей
6
Баллы
8
да что у вас не удаляется ???
:D:D:D
Да он вообще все удаляет)))
В том то и прикол.
Код:
 IZennoList OutputList = project.Lists["OutputList"];
project.Lists["OutputList"].Clear();
OutputList.Where(s=>s!=string.Empty).Distinct()
    .Select(s=>s.ToLower())
    .ToList()
    .ForEach(s=>project.Lists["OutputList"].Add(s.Trim()));
Просто пустой список получается))
А можно тоже самое только с перламутровыми?)))
Ну типа тоже самое только чтобы добли удаляло и пустые, а не все?) Спасибо.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  • Спасибо
Реакции: deopl

Sanekk

Client
Регистрация
24.06.2016
Сообщения
999
Благодарностей
390
Баллы
63
:D:D:D
Да он вообще все удаляет)))
В том то и прикол.
Код:
 IZennoList OutputList = project.Lists["OutputList"];
project.Lists["OutputList"].Clear();
OutputList.Where(s=>s!=string.Empty).Distinct()
    .Select(s=>s.ToLower())
    .ToList()
    .ForEach(s=>project.Lists["OutputList"].Add(s.Trim()));
Просто пустой список получается))
А можно тоже самое только с перламутровыми?)))
Ну типа тоже самое только чтобы добли удаляло и пустые, а не все?) Спасибо.
затестил код все отлично удаляется и дубли и пустые строчки
ssXXXss,у спасибо за сниппет в коллекцию
 

Mr-Grey

Client
Регистрация
03.02.2016
Сообщения
88
Благодарностей
6
Баллы
8

Sanekk

Client
Регистрация
24.06.2016
Сообщения
999
Благодарностей
390
Баллы
63
Ты прям вот мой что я цитировал взял?
нет. я брал из поста ssXXXss.
Я сразу не обратил внимание что ты объявил список другим методом.
Как у тебя удаляет все,а из каких соображений ты применяешь IZennoList ?
 

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