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

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

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

public bool Check (List<string> Input) {}
  • Вопрос задан
  • 125 просмотров
Решения вопроса 2
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Используй HashSet. Если при Add вернет true - значит есть дубликат
Ответ написан
Комментировать
vabka
@vabka Куратор тега C#
Токсичный шарпист
Под капотом в любом случае всё упрётся в цикл.

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы