C# programming. Lesson 13. LINQ introducion

Поделиться
HTML-код
  • Опубликовано: 21 фев 2014
  • Рассматривается технология LINQ, примеры работы, разбирается механизм LINQ с IEnumerable
    Ссылки на предыдущие уроки:
    Урок 12. Лямбда-выражения. • Уроки C#. Лямбда-выраж...
    Урок 11. Три кита. • Уроки C#. Три кита
    Урок 10. Исключения. • Уроки C#. Исключения
    Урок 9. Множества. • Уроки C#. Множества
    Урок 8. Обобщения. • Уроки C#. Обобщения
    Урок 7. Пример создания приложения. • Уроки C#. Пример созда...
    Урок 6. Интерфейсы. • Уроки C#. Интерфейсы.
    Урок 5. Запечатанные, статические и абстрактные классы. • Уроки C#. Запечатанные...
    Урок 4. Наследование и полиморфизм. • Уроки C#. Наследование...
    Урок 3. Делегаты и события. • Уроки C#. Делегаты и с...
    Урок 2. Состав типа. • Уроки C#. Состав типа.
    Урок 1. Типы данных. • Уроки C#. Типы данных.

Комментарии • 49

  • @madscientist338
    @madscientist338 2 года назад +1

    Самые самые лучшие уроки, ну нигде лучше не найти, просто класс

  • @mikhailkh8560
    @mikhailkh8560 8 лет назад +17

    Огромное спасибо! Крайне не простые темы раскрыть так подробно и внятно - талант!

  • @natunuarat3207
    @natunuarat3207 8 лет назад +16

    "Лирические отступления" - одна из самых полезных фич этого курса. Спасибо (/◕ヮ◕)/

  • @ElijahMplace
    @ElijahMplace 10 лет назад +9

    Отдельное спасибо за пример реализации метода Where. Теперь Linq перестал казаться магией)

  • @user-hc1qe1xh7s
    @user-hc1qe1xh7s 10 лет назад +5

    Спасибо! Мне нравятся Ваши занятия. Смотрел их все, хотя и пишу впервые. У меня были какие то представления о языке после книги Шилдта, но Ваши уроки мощно их дополнили и усилили. Очень жду новых тем. Очень хотелось бы, что бы периодически были уроки в духе Урока №7 (Пример создания приложения). Еще раз спасибо!

  • @Allesli
    @Allesli 9 лет назад +5

    Особое спасибо за множество практических советов для начинающих разработчиков, как об использовании NotImplementedException.

  • @viktarkliuyenkou9824
    @viktarkliuyenkou9824 8 лет назад +5

    Очень хороший пример - написать метод Where самому. Пока писал, разобрался и с множествами и с обобщениями и с тем как устроены методы расширения LINQ для типов IEnumerable. Всем советую попробовать самим, тем более, что потом можно сравнить с тем как сделал это автор.

  • @LeifMage
    @LeifMage 5 лет назад +1

    Я просто в восторге от ваших уроков!

  • @lenalion100
    @lenalion100 10 лет назад +4

    Спасибо за уроки. Четко, ясно. Шилдт + Вы - даже новичок освоит C#. Если можно - еще уроки, типа №7 (Пример создания приложения). А то теория вроде понятна, а как до дела доходит...Еще раз спасибо за ваш труд!

  • @dashachernova3831
    @dashachernova3831 10 лет назад +1

    Отличные уроки! Спасибо!

  • @vladgonchar
    @vladgonchar 8 месяцев назад

    Thank you. Very informative.

  • @SuperPrince96
    @SuperPrince96 8 лет назад +1

    Добрый день! Благодарю вас за предоставленный ролик. Желаю вам успехов в новых видео!

  • @user-dm3fh6rh6m
    @user-dm3fh6rh6m 10 лет назад +5

    И по C# хорошие уроки получаются, думаю не стоит распыляться на на другие языки... P.S. Жду новых уроков)

  • @user-ct8zg9vt9r
    @user-ct8zg9vt9r 7 лет назад

    Хорошая идея с разборами полета! Спасибо !

  • @ulbreht
    @ulbreht 3 года назад

    Очень хороший рассказчик. Спасибо.

  • @user-rb1jb7gk8g
    @user-rb1jb7gk8g 6 лет назад +3

    Голова кругом, но очень интересно рассказываете! Спасибо! :)

  • @yakovga
    @yakovga 4 года назад

    Спасибо за уроки. Чем мог, поддержал.

  • @user-ox7cu9np8z
    @user-ox7cu9np8z 10 лет назад +4

    Игорь, большое спасибо за ваши хорошие уроки! Решил поинтересоваться, не хотите ли вы по-возможности сделать пару-тройку уроков по проектированию? Для этого можно было бы использовать те приложения, которые вы уже написали для себя или на работе, в которых, возможно, вы использовали какие-то интересные технологии или паттерны проектирования, а где - наоборот, от них отказались в пользу, например, оптимизации. Конкретные примеры или код опытного разработчика были бы очень полезны...

  • @nullnull5408
    @nullnull5408 10 лет назад +1

    Defazze спасибо за интересные уроки. Очень бы хотелось урок по универсальным типам и разработке много поточных приложений.

    • @Defazze
      @Defazze  10 лет назад +1

      По универсальным типам уже есть, см. урок "Обобщения".

    • @nullnull5408
      @nullnull5408 10 лет назад

      Ясно спасибо.

  • @LuchkinDS
    @LuchkinDS 10 лет назад

    с большим интересом посмотрел бы уроки, косвенно относящиеся к данной теме, но от этого не менее важную - тестирование! большинство авторов уроков обходят эту тему.

    • @Defazze
      @Defazze  10 лет назад +3

      Тестирование - тема крайне обширная. Но в одном из следующих уроков она обязательно будет затронута (юнит-тестирование)

  • @user-kx4lb6fz2k
    @user-kx4lb6fz2k 10 лет назад +20

    Добрый день!!! Присоединяюсь к благодарностям за Ваш труд! Ваши уроки просто находка для меня.
    Но есть несколько вопросов.
    При наборе кода у вас часто можно увидеть, что текст становится, если можно так выразиться, серым, что говорит о его необязательности, а так же подсказки в необходимости подключения тех или иных пространств имен. У вас установлен ReSharper?
    Возможно, будет полезно (во всяком случае для меня точно) сделать небольшой урок с советами как быстро и удобно набирать код программ используя Intellisense, в том числе с функционалом того же самого ReSharper (или другого плагина, который Вы используете)...
    Так же интересно, есть ли какой-то аналог ReShatper, так как он устанавливается только под полную версию Visual Studio, а Visual Studio Express им не поддерживается.

    • @Defazze
      @Defazze  10 лет назад +3

      Да, у меня установлен ReSharper. Что касается его использования - ну на мой взгляд там всё интуитивно понятно, единственное, что я настраиваю - это соглашение об именах.

    • @fariduntech.1878
      @fariduntech.1878 8 лет назад +1

      +Программирование - это просто Помогите пожалуйста))) В Visual Studio 2012 у меня выходит вот эта ошибка - Не удалось найти исходный файл C:\Windows\TEMP\.NETFramework,Version=v4.5.AssemblyAttributes.cs((( Что делать? Помогите пожалуйста))) Вы очень круто ведёте уроки по C#)))

    • @green16go
      @green16go 8 лет назад

      +Александр Ампилогов, решарпер теперь можно установить на Visual Studio Community, так же решарпер даёт вам бесплатную версию, если вы студент

    • @user-zd3qw7le5c
      @user-zd3qw7le5c Год назад

      @@Defazze тут не описан класс TestSet{}

  • @ivanfilatov2526
    @ivanfilatov2526 10 лет назад +6

    Вы часто говорите: "компилятор выделяет то", "компилятор подчеркивает это". По моему, компилятор имеет довольно опосредованное отношение к проверке текста программы, а конкретно в вашем случае чаще всего работает вообще сторонний плагин - ReSharper, если я не ошибаюсь.

  • @Graver24
    @Graver24 4 года назад

    Лучшее средство от бессонницы!))))

  • @future_L011
    @future_L011 7 лет назад +1

    если я правильно понял, наши условия применяются к элементу множества в момент когда мы впервые что-то делаем с ним? Иначе я не совсем понимаю, как оно выводит одновременно сообщения о доступе к элементу из начального множества и полученых элементов после его обработки одновременно (не дожидаясь обработки остальных элементов).

  • @user-rt6km4mf3n
    @user-rt6km4mf3n 8 лет назад

    Может, неправильно воспринял или путаюсь. 6:37 Мы воспользовались явным вызовом метода GetEnumerator() по интерфейсу IEnumerable именно потому что есть ещё одна версия GetEnumerator() для IQueryable? А название метода одно... Хотя нет. Студия не восприняла другой интерфейс.

  • @user-rt6km4mf3n
    @user-rt6km4mf3n 8 лет назад

    И ещё. 28:50 Лямбда-выражения применяются к атомарным операциям - а что, если мы захотим отделить нечётные элементы от чётных пустой строкой (WriteLine();)?

    • @Defazze
      @Defazze  8 лет назад +1

      +Юрий Пискунов если операция не атомарная, то используется анонимный метод вместо лямбда-выражения:
      var resultSet = list.Select(i =>
      {
      Console.WriteLine();
      return "*" + i.ToString() + "*";
      });
      P.S. Только надо иметь в виду, что засовывать Console.WriteLine() внутрь операций LINQ - не самое лучшее решение

  • @K0Tik82
    @K0Tik82 4 года назад

    Стоунвол разворачивается справа налево: LINQ - запрос, интегрированный в язык. ;-)

  • @ReasonX3
    @ReasonX3 10 лет назад +1

    Когда появятся новые уроки?

    • @Defazze
      @Defazze  10 лет назад +7

      Уже скоро.

  • @dashachernova3831
    @dashachernova3831 10 лет назад

    А будут уроки посвященные другим языкам?С++, Java?

    • @Defazze
      @Defazze  10 лет назад +3

      К сожалению, я не настолько хорошо знаю C++, чтобы делать по нему уроки. Что касается Java - она очень похожа на C#. Поэтому, хорошо зная C#, разобраться в Java не составит труда.

    • @dashachernova3831
      @dashachernova3831 10 лет назад

      Жаль конечно, очень нравится как Вы рассказываете. Очень жду новые уроки по С#!

  • @LuchkinDS
    @LuchkinDS 10 лет назад

    добрый день. продолжение следует?

    • @Defazze
      @Defazze  10 лет назад +1

      Обязательно следует, через некоторое время.

  • @cheguevara1260
    @cheguevara1260 8 лет назад +4

    не интегрированый язык а "язык интегрированых запросов"

  • @BillGates-ry3dk
    @BillGates-ry3dk 2 года назад

    ааа сложнааа

  • @JohnDoe-pg6eh
    @JohnDoe-pg6eh 5 лет назад

    ниче не понял

    • @user-ds3ws2ix6e
      @user-ds3ws2ix6e 3 года назад

      А если так:
      public IEnumerator GetEnumerator()
      {
      foreach(T element in _source)
      {
      if (_predicate(element))
      yield return element;
      }
      }

    • @user-zd3qw7le5c
      @user-zd3qw7le5c Год назад

      @@user-ds3ws2ix6e с ключевым словом yield наверное будет работать в обход этого длинного кода . . . а к вам вопрос - тут не показан класс TestSet{}
      public class TestSet : IEnumerable
      {
      public IEnumerator GetEnumerator()
      {
      for (int i = 1; i < 100; i++)
      {
      yield return i;
      }
      }
      IEnumerator IEnumerable.GetEnumerator()
      {
      return GetEnumerator();
      }
      }
      я наверное привел его с ошибками. ВОПРОС: скажите как подправить этот класс (может даже радикально - чтобы заработал "длинный код" в конце этого ролика)

  • @ivannebyshynets8829
    @ivannebyshynets8829 3 года назад +1

    Вот и почему я такой тупой!?

  • @Sergey-mr6be
    @Sergey-mr6be 6 лет назад

    Отличные уроки. Спасибо!