Баги при сравнении текущего елемента IEnumerable с последним Last(), LastOrDefault - C#
Формулировка задачи:
Дорого вечера уважаемые знатоки
Кто мне объяснит почему при сравнении текущего элемента коллекции в цикле с последним или последним или дефолтным всегда вытекает ложь. Вопрос относится именно к IEnumerable - с листами и прочей нечистью все работает
Пример который никогда не вернет значение отличное от NULL
Код который возвращает, под спойлером - чтобы не было соблазна писать что и как можно сделать
да также не работает ElementAt() - Это для любителей фор"а, как не работает да вот так dates.ElementAt(1) == dates.ElementAt(1) всегда ложь
public DateItem Get(IEnumerable<DateItem> dates) { foreach (var dateItem in dates) { if (dateItem.Equals(dates.Last())) { return dateItem } } return null; }
public DateItem Get(List<DateItem> dates) { foreach (var dateItem in dates) { if (dateItem.Equals(dates.Last())) { return dateItem } } return null; }
Решение задачи: «Баги при сравнении текущего елемента IEnumerable с последним Last(), LastOrDefault»
textual
Листинг программы
public DateItem Get(IEnumerable<DateItem> dates) { var last = dates.Last(); foreach (var dateItem in dates) { if (dateItem.Equals(last)) { return dateItem; } } return null; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д