Индексаторы (Indexer) и Итераторы (yield). Интерфейс IEnumerable в C# - Учим Шарп #22

  Рет қаралды 29,608

CODE BLOG

CODE BLOG

5 жыл бұрын

Индексатор (Indexer) и Итератор (yield). Интерфейс IEnumerable в языке программирования C#
На этом занятии мы познакомимся с понятием индексатор (Indexer), который позволяет обращаться к элементам объектов содержащие коллекции по индексу (как к элементам массива). Научимся создавать итератор для перебора имеющихся значений в коллекциях с помощью ключевого слова yield. А также реализуем интерфейсы IEnumerable и IEnumerator, которые используются в большинстве коллекций и необходимы для использования цикла foreach.
-----------
ПОДПИШИСЬ на соцсети:
🔴 TELEGRAM: bit.ly/tg_codeblog
🔴 VK: bit.ly/vk_codeblog
🔴 INSTAGRAM: bit.ly/inst_codeblog
🔴 Яндекс Дзен: bit.ly/zen_codeblog
🔴 FACEBOOK: bit.ly/fb_codeblog
🔴 TWITTER: bit.ly/twit_codeblog
🔴 Мой блог: bit.ly/site_codeblog
-----------
ПОДДЕРЖИ развитие CODE BLOG:
💲 Донат: bit.ly/donate_codeblog
💲 Спонсорство: bit.ly/patreon_codeblog
-----------
СМОТРИ мои обучающие курсы:
👉 УЧИМ ШАРП: bit.ly/cs_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #1: bit.ly/fit_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #2: bit.ly/crm_codeblog
👉 СТРУКТУРЫ ДАННЫХ: bit.ly/ds_codeblog
👉 АЛГОРИТМЫ СОРТИРОВКИ: bit.ly/sort_codeblog
👉 ОТВЕТЫ НА ВОПРОСЫ: bit.ly/faq_codeblog
👉 IT ПЕРЕОЗВУЧКА: bit.ly/resound_codeblog
👉 НЕЙРОННАЯ СЕТЬ: bit.ly/ai_codeblog
👉 ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ: bit.ly/pattern_codeblog
👉 CODE REVIEW: bit.ly/review_codeblog
👉 CLR via C#: bit.ly/clr_codeblog
-----------
Кстати, меня зовут Шванов Вадим, и я профессиональный .NET разработчик с 2011 года и автор этого канала CODE BLOG. Я рассказываю про IT технологии и веду абсолютно бесплатный курс по языку C# с нуля. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP .NET, .NET Core, ASP.NET MVC, Unity, WPF, структуры данных и алгоритмы, с#, dotnet, паттерны проектирования, информатика, csharp, программное обеспечение и многое другое. Для меня важно не только показать практическое применение языка си шарп, но и объяснить основную идею и базовые понятия Computer Science. В качестве основного инструмента разработки используется Visual Studio c# и проекты на Visual c#. Если вам нравятся такие каналы как хауди хо, айти борода, Soer или ExtremeCode, то здесь вам точно понравится.
-----------
#codeblog #программирование #csharp #ityoutubersru #программист #разработка

Пікірлер: 36
@CODEBLOG
@CODEBLOG 5 жыл бұрын
На этом занятии мы познакомимся с понятием индексатор (Indexer), который позволяет обращаться к элементам объектов содержащие коллекции по индексу (как к элементам массива). Научимся создавать итератор для перебора имеющихся значений в коллекциях с помощью ключевого слова yield. А также реализуем интерфейсы IEnumerable и IEnumerator, которые используются в большинстве коллекций и необходимы для использования цикла foreach. Кстати, меня зовут Вадим, и я программист на языке C# уже больше 8 лет. Рассказываю про IT технологии и веду этот курс по языку C# с нуля под названием Учим Шарп. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP.NET, Core, MVC, Unity, WCF, WPF, структуры данных и алгоритмы обработки, паттерны проектирования и многое другое. Подписывайтесь, впереди еще много интересного.
@Jokero74
@Jokero74 4 жыл бұрын
мда, ну нафиг такой сахар, который только путает и сбивает с толку. Сахар вроде должен упрощать, а не усложнять жизнь.
@alekseykorzjickiy
@alekseykorzjickiy 5 жыл бұрын
Нормальных каналов для прогеров мало, даже книги и веб-ресурсы на русском по пальцам можно пересчитать, если разбирать сложные темы на шарпе. И те не всегда под актуальные версии языка и о том что нужно. Спасибо за труды!!! Сам сейчас закончил все азы по Г. Шилдту (учил само сабой не только по нему), начал переходить на ASP и WPF за практикой, и именно по этой теме был последний пробел в понимании фич дот нета. Все, пора во фреймворки, аминь )))
@lamax847
@lamax847 5 жыл бұрын
Огромный тебе респект, лайк и подписка за то, что делаешь это для нас!!!
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Спасибо за поддержку )
@igorcoolman
@igorcoolman 5 жыл бұрын
звук ужасно тихий в некоторых видеороликах ( к лету догоню наверное вас )))
@CODEBLOG
@CODEBLOG 5 жыл бұрын
странно, но в других видео наверное лучше
@eniluck5071
@eniluck5071 4 жыл бұрын
все лицо в сахаре :-D Обляпался
@maksimzobin1844
@maksimzobin1844 5 жыл бұрын
Спасибо за видео. Было бы хорошо иметь таймлайны с началом какой либо темы.
@viktorkomlev5804
@viktorkomlev5804 4 жыл бұрын
только С, только хардкорррр! И можно чай с сахаром пить))
@VladisS.Vostok2000
@VladisS.Vostok2000 4 жыл бұрын
@Написал и в теории обосновал основы клиент-серверного приложения @Упомянул про индексаторы Норм
@bloodborn9632
@bloodborn9632 3 жыл бұрын
Спасиб разбираю троелсена, на скок я понял именованные нумераторы в данном случае getnamber() должен определяться не как ienumerator, а как ienumerable. Так в книге написано, но там ничего не написанно про то что именованный нумератор с елдом возвоащает колекцию, я думал элемент и поэтому сидел тупил от записи foreach(Car car in parking.getcar())посмотрел твое видео и понял что getcar() с елдом внутри возвращает колекцию а не одну машину. Спасиб за видос!
@user-nw5mh1ev3m
@user-nw5mh1ev3m 5 жыл бұрын
Поясните пожалуйста суть интерфейса IEnumerable ? Он просто реализует интерфейс IEnumerator? Если я и так буду реализовывать IEnumerator, можно ли не наследоваться от IEnuberable?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Этот интерфейс гарантирует, что в классе будет перечислитель
@dannycyberwalker
@dannycyberwalker 5 жыл бұрын
Можно исходник ?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
github.com/shwanoff/Lesson22
@EdwardNorthwind
@EdwardNorthwind 5 жыл бұрын
Как-то в этот раз совсем в формате "вот есть такие штуки, но что это и как работает я вам не расскажу". Я так и не понял что это за yield и как он работает. Да и реализация итерации просто супер -- просто делегируйте это дерьмо на уже готовый метод.
@CODEBLOG
@CODEBLOG 5 жыл бұрын
ну да, мне самом этот стрим не очень понравился. в целом идея такая, можно реализовывать перечислитель для коллекции в ручную, а можно сократить количество кода с помощью yield + сделать ленивую загрузку. Скоро когда дойдем в текущем курсе по рихтеру до этой темы постараюсь более подробно разъяснить
@user-yl6uh4cu1v
@user-yl6uh4cu1v 4 жыл бұрын
Пожалуйста, погромче. Потише можно сделать на устройствах, а погромче уже не выкрутишь с мобильного. Спасибо за видео.
@victorprohorov6201
@victorprohorov6201 2 жыл бұрын
Скажите пожалуйста, никак не могу это понять, почему мы и IEnumerable и IEnumerator указываем как типы данных? вообще не понимаю как мы в качестве типа данных указываем интерфейс? как это так, интерфейс же можно только наследовать/реализовывать
@artur8904
@artur8904 2 жыл бұрын
так же как и клас можно наследовать и реализововать его можно использовать как тип данніх. то же и с интерфейсами
@victorprohorov6201
@victorprohorov6201 2 жыл бұрын
@@artur8904 Спасибо!!!
@talisman1104
@talisman1104 Жыл бұрын
Ты говоришь что в этой переменной будет лежать то, что реализует интерфейс. Тоже самое с классом. Мы создаём переменную такого типа в котором будет хранится данный тип или наследники его
@ivanomelchenko1895
@ivanomelchenko1895 3 жыл бұрын
привет
@ivanomelchenko1895
@ivanomelchenko1895 4 жыл бұрын
+++
@scc-6
@scc-6 2 ай бұрын
Виэу название, но не понимаю, как это можно растянуть на 2 часа
@sashkosashok
@sashkosashok 4 жыл бұрын
Помаленьку проехал. Но надо будет еще пару раз столкнуться с темой.
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Да, нужно обязательно на практике посмотреть )
@odushbrodya3693
@odushbrodya3693 4 жыл бұрын
6:55 , слышно как кто то разговаривает сквозь жужжание ... ясно, прослушивают хакера ..
@CODEBLOG
@CODEBLOG 4 жыл бұрын
За нами следят! Где моя шапочка из фольги?! :))
@vladimirkovyako4308
@vladimirkovyako4308 4 жыл бұрын
Сколько фейспалмов было пробито мною во время прсмотра, столько чуши сказано, про факториал, про числа Фибоначчи, про рандомное вписывание обобщения в тип обобщения интерфейса, абсолютное не понимаю как работать с итераторами, автор не понимает про такие вещи как Current, MoveNext, Reset вообще не понимаю к чему это 1:17:30 писать индекс в скобках к индексатору, уже второй раз смотрю видео на канале и просто понимаю что автор берёт готовые материалы со сторонних ресурсов и их преподносит, сам при этом не имея большого понятия как оно устроено. UPD: 1:19:41 проходить var item по объекту итератор многого стоит, смешно и неудобно смотреть на эту непонятливость темы со стороны автора
@talisman1104
@talisman1104 Жыл бұрын
Как-то совсем не подготовлено. Автор сам не вполне понимает тему
@dizelman1972
@dizelman1972 3 жыл бұрын
Чувак не в теме, объясняет методом тыка, цель одна - показать вам как можно больше рекламы
C# Yield Return: What is it and how does it work?
15:09
Brian Lagunas
Рет қаралды 55 М.
I'm Excited To see If Kelly Can Meet This Challenge!
00:16
Mini Katana
Рет қаралды 31 МЛН
Why Is He Unhappy…?
00:26
Alan Chikin Chow
Рет қаралды 76 МЛН
Smart Sigma Kid #funny #sigma #comedy
00:40
CRAZY GREAPA
Рет қаралды 34 МЛН
Son ❤️ #shorts by Leisi Show
00:41
Leisi Show
Рет қаралды 9 МЛН
Самое полное интервью Golang Middle
3:08:32
Эйч Навыки — менторская программа
Рет қаралды 68 М.
CLR via C#. Глава 11. События C#
1:26:40
CODE BLOG
Рет қаралды 8 М.
Understand your C# queries! IEnumerable & IQueryable in explained
11:28
tutorialsEU - C#
Рет қаралды 33 М.
I'm Excited To see If Kelly Can Meet This Challenge!
00:16
Mini Katana
Рет қаралды 31 МЛН