LINQ и работа с коллекциями в C# - Учим Шарп #20

Поделиться
HTML-код
  • Опубликовано: 24 авг 2024
  • LINQ и работа с коллекциями в языке программирования C#
    На этом занятии мы познакомимся с языком запросов LINQ в языке программирования C# и научимся с его помощью обрабатывать коллекции. Он позволяет формировать запросы похожие на SQL для коллекций реализующих интерфейс IEnumerable и не только. Рассмотрим стандартную форму записи, а также методы расширений LINQ. Изучим основные методы, такие как Select, Where, OrderBy, GroupBy, Reverse, All, Any, Contains, Distinct, Count, Sum, Average, Min, Max, Take, Skip, Concat, First, FirstOrDefault, Single, SingleOrDefault, ElementAt, ElementAtOrDefault, Last, LastOrDefault.
    -----------
    ПОДПИШИСЬ на соцсети:
    🔴 TELEGRAM: bit.ly/tg_code...
    🔴 VK: bit.ly/vk_code...
    🔴 INSTAGRAM: bit.ly/inst_co...
    🔴 Яндекс Дзен: bit.ly/zen_cod...
    🔴 FACEBOOK: bit.ly/fb_code...
    🔴 TWITTER: bit.ly/twit_cod...
    🔴 Мой блог: bit.ly/site_co...
    -----------
    ПОДДЕРЖИ развитие CODE BLOG:
    💲 Донат: bit.ly/donate_...
    💲 Спонсорство: bit.ly/patreon...
    -----------
    СМОТРИ мои обучающие курсы:
    👉 УЧИМ ШАРП: bit.ly/cs_code...
    👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #1: bit.ly/fit_cod...
    👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #2: bit.ly/crm_cod...
    👉 СТРУКТУРЫ ДАННЫХ: bit.ly/ds_code...
    👉 АЛГОРИТМЫ СОРТИРОВКИ: bit.ly/sort_co...
    👉 ОТВЕТЫ НА ВОПРОСЫ: bit.ly/faq_cod...
    👉 IT ПЕРЕОЗВУЧКА: bit.ly/resound...
    👉 НЕЙРОННАЯ СЕТЬ: bit.ly/ai_code...
    👉 ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ: bit.ly/pattern...
    👉 CODE REVIEW: bit.ly/review_...
    👉 CLR via C#: bit.ly/clr_cod...
    -----------
    Кстати, меня зовут Шванов Вадим, и я профессиональный .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 #программист #разработка

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

  • @CODEBLOG
    @CODEBLOG  5 лет назад +11

    На этом занятии мы познакомимся с языком запросов LINQ в языке программирования C# и научимся с его помощью обрабатывать коллекции. Он позволяет формировать запросы похожие на SQL для коллекций реализующих интерфейс IEnumerable и не только. Рассмотрим стандартную форму записи, а также методы расширений LINQ. Изучим основные методы, такие как Select, Where, OrderBy, GroupBy, Reverse, All, Any, Contains, Distinct, Count, Sum, Average, Min, Max, Take, Skip, Concat, First, FirstOrDefault, Single, SingleOrDefault, ElementAt, ElementAtOrDefault, Last, LastOrDefault.

  • @grenadier1653
    @grenadier1653 5 лет назад +32

    Бархатный, приятный для ушей голос, грамотный учитель, отличный урок. Спасибо.

    • @CODEBLOG
      @CODEBLOG  5 лет назад +10

      Вот серьезно, никогда не мог подумать, что у меня хороший голос. Но спасибо за добрые слова )

  • @Aoll11
    @Aoll11 4 года назад +11

    "Item такой что" - лучшее объяснение лямбда методов, что я встречал. Коротко и понятно )

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p 5 лет назад +13

    Спасибо за качественные уроки.

    • @CODEBLOG
      @CODEBLOG  5 лет назад +2

      Очень рад, что нравятся )

  • @user-og2gw8tf6u
    @user-og2gw8tf6u 4 года назад +4

    отличные уроки, очень интересно смотреть

  • @karabasbarabas2000
    @karabasbarabas2000 5 лет назад +15

    зачем нужны методы массивов и коллекций если есть линк! это просто космос! спасибо за урок!

    • @CODEBLOG
      @CODEBLOG  5 лет назад +4

      Пожалуйста, но методы массива работают быстрее. линк достаточно ресурсозатратный. но да, очень удобный, мне тоже нравиться )

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

      @@CODEBLOG а как понять что он более или менее ресурсоемкий?

    • @CODEBLOG
      @CODEBLOG  5 лет назад +4

      нужно посмотреть ассемблерный код и сравнить количество команд ))

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

      @@CODEBLOG То выходит если речь идет об оптимизации или рефакторинге, то лучше использовать методы массивов?

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

      Затем, что задняя совместимость.

  • @abdusamadjuraev2615
    @abdusamadjuraev2615 4 года назад +6

    спасибо за ваши уроки!они очень крутые!

  • @roduman
    @roduman 5 лет назад +4

    Отличные уроки.

    • @CODEBLOG
      @CODEBLOG  5 лет назад

      Спасибо ) Очень рад, что нравятся )

  • @vadimklimenko9002
    @vadimklimenko9002 5 лет назад +4

    Можно было еще кстати рассказать про то, что при нативном написании запрос обязательно должен заканчиваться select или group...by. А так же упомянуть про отложенное выполнение запросов, т.е. если к примеру до foreach мы поменяли array[0], то в будет браться уже новое значение, а не то, которое мы передали в запрос...

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

      Спасибо, хорошие замечания. Но и так уроки длинные получаются, и обо всем все равно не получится рассказать. все придет с опытом )

    • @clickclack3375
      @clickclack3375 2 года назад

      зачем эти точки в конце ставить

    • @Felix-og7pd
      @Felix-og7pd 2 года назад +2

      @@clickclack3375 вызов метода

  • @GameQuestionTV
    @GameQuestionTV 4 года назад +4

    Реально полезное видео, спасибо!!!

  • @abdusamadjuraev2615
    @abdusamadjuraev2615 4 года назад +2

    Вадим,вот вам совет:напишите эксепшн для камеры)

  • @Console.WriteLine
    @Console.WriteLine Год назад +1

    для продвижки

  • @pispis3617
    @pispis3617 4 года назад +5

    Спасибо за уроки))
    Будет ли продолжение?
    Более подробный разбор тем или другие направления?

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

      Говорил, что будет. Но как я понимаю, роликов нету из за релокейта в Чехию. На канале еще нету Unity и еще ряда технологий, так что надеюсь продолжение скоро будет.

  • @bromle3576
    @bromle3576 4 года назад +12

    27:34 я пытался не смеяться честно!

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

      хД)))) Ну с кем не бывает))

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

      ХАХАХХАХАХАХАХАХХААХХАХПХАХАХАХА

  • @juliusmalkov9620
    @juliusmalkov9620 5 лет назад +2

    как всегда -познавательно)

  • @giorgigogeishvili8397
    @giorgigogeishvili8397 5 лет назад +3

    спасибо , супер видео !!! (მადლობა, მაგარი ვიდეოა)

    • @CODEBLOG
      @CODEBLOG  5 лет назад

      Всегда пожалуйста ) очень рад, что нравится )

  • @user-ci8yo4yr7s
    @user-ci8yo4yr7s 4 года назад +1

    Попытался первый раз поработать с GitHub. Сделал всё точно так же как в видео, но в итоге в репозитории только два файла .gitattributes и .gitignore.
    Думал может сделал что-то не так. Попробовал ещё раз, и ещё раз, но в результате итог всегда один, в гит падают только два файла. В чем проблема?

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

    94 var intersect = array.Intersect(array2); // выдает странный результат, как-будто я использовал select DISCTINCT value from somewhere where something not in()

  • @user-lx5vv3uu8u
    @user-lx5vv3uu8u 4 года назад +1

    Спасибо!

  • @Veyron104
    @Veyron104 2 года назад +2

    11:35 ахахах "делил" людей на мужчин, женщин и неопределившихся ещё до того, как это стало мэйнстримом)))

  • @yevhenvictorovich2288
    @yevhenvictorovich2288 4 года назад +1

    А как выполнить выборку из двух классов?

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

    Есть ли разница в производительности и логике между LINQ userClass.Sum() и userClass.Aggregation((m.n) => m+n)? Есть ли какой-нибудь софт чтобы отследить LINQ запрос дабы получить результирующий SQL-запрос по которому в конечном итоге будет общение с БД? Спасибо за урок!

    • @CODEBLOG
      @CODEBLOG  5 лет назад +2

      Затестил скорость суммирования. Sum работает быстрее
      Выполняется создание коллекции из 100000000 элементов
      Выполняем суммирование с помощью Sum
      Результат выполнения 49999089,5334204. Время выполнения 00:00:00.6107488
      Выполняем суммирование с помощью Aggregate
      Результат выполнения 49999089,5334204. Время выполнения 00:00:00.9507005
      По поводу Linq посмотри в сторону LINQ to SQL Debug Visualizer или если не нужны подробности, то можно посмотреть свойство CommandText

    • @AlexKwestCraft
      @AlexKwestCraft 5 лет назад

      @@CODEBLOG Спасибо :-)

  • @Sky-pg8ot
    @Sky-pg8ot 4 года назад +1

    54:40

  • @user-cy5dj7sk7f
    @user-cy5dj7sk7f 4 года назад +1

    У нас есть entity fraemwork, который используется для создания и работы с БД. У нас есть Linq, с помощью которого мы тоже можем делать то же самое. Тогда возникает закономерный вопрос: а зачем нам нужно два инструмента, которые выполняют одни и те же функции? Или я что-то не так понял? Поясните мне, пожалуйста.
    P. S. Работа с Linq на примере коллекций - не очень пример. Так как он используется для работы непосредственно с БД, то лучше было бы найти в интернете учебную базу данных и непосредственно на ней показать возможности - это лично мое мнение.

    • @CODEBLOG
      @CODEBLOG  4 года назад +6

      Это совсем не одно и то же. Entity Framework - это представление структуры базы данных в языке программирования. Для простоты можно воспринимать как таблицы в бд (ООООООчень грубая аналогия). LINQ - это манипуляция данными, возможность отфильтровать, получить и вывести необходимые данные. как язык запросов в БД. они служат для разных целей

  • @csharpcplusplus6861
    @csharpcplusplus6861 4 года назад +1

    в java есть что то подобное?

    • @qburanp
      @qburanp 5 месяцев назад

      Stream API

  • @alexalexander3252
    @alexalexander3252 Год назад +2

    Просмотрел первые 20 минут видео. Из 20 минут 15- костноязычное чтение комментов сонным голосом. И это на 2 часа растянется? Ну нет, спасибо.

    • @evgeniyt.2858
      @evgeniyt.2858 Год назад

      Скорость увеличь на 1.5 и смотри

  • @stas4796
    @stas4796 5 лет назад +2

    Зачем делать products.ElementAt(5), если можно products[5]?

    • @CODEBLOG
      @CODEBLOG  5 лет назад

      Можно и так ) но такая возможность есть )

  • @user-lm8py5rb4m
    @user-lm8py5rb4m 3 года назад +1

    Долгоооооооо.......

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

    привет

  • @mikhailsloushch5052
    @mikhailsloushch5052 4 года назад +2

    почему реклама каждые 2 минуты?

  • @hiddenlul556
    @hiddenlul556 5 лет назад +2

    меня одного напрягает переменная var ?

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

      а чем напрягает то? )) очень даже удобно и безопасно )

    • @sashkosashok
      @sashkosashok 5 лет назад

      Нет, но судя по Вадиму в С# так часто делают.

    • @hiddenlul556
      @hiddenlul556 5 лет назад

      @@CODEBLOG просто, я не знал что можно нажать чудо кнопку, и студия сама напишет имя класса или что там скрывается. Поэтому и напрягало, что я не знал откуда это все берется