Задать вопрос
JoeSmith3100
@JoeSmith3100
Начинающий программист C#

Как проверить в списке элементов типа string наличие двух одинаковых строк?

Допустим есть список строк, в котором неприемлемо нахождение двух одинаковых элементов. Использование любых циклов (for, foreach) нежелательно.
Каким образом можно написать такой метод под следующую сигнатуру?

public bool Check (List<string> Input) {}
  • Вопрос задан
  • 213 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 2
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Используй HashSet. Если при Add вернет true - значит есть дубликат
Ответ написан
Комментировать
Под капотом в любом случае всё упрётся в цикл.

Если просто синтаксический не хочешь видеть цикл, то .Distinct().Count() и сравни с длиной исходного списка.

Но по хорошему лучше пойти путём AshBlade

И вообще если обязательна уникальность элементов - изначально работать с HashSet, а не List
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Использование любых циклов (for, foreach) нежелательно.

Вот скажи что за душный у тебя тех-лид? Это надож такое требование придумать!!

Вот насколько я помню квантовые компьютеры как-то работают без циклов. У них - другие
свойства более сложные и труднообъяснимые. Но как-то они работают. Так что тебе дружище
дорога либо в квантовую физику либо смирись с циклами.

Под капотом любых шарповых функций которые работают с коллекциями мы найдем либо
цикл либо хвостовую рекурсию. А если тебя как разработчика пугает такая инкапсуляция
то тебе наверное не стоит программировать. С такими страхами - лучше быть пользователем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы