Результати пошуку за запитом: начальный курс c
Выполнение домашнего задания C# Базовый. Видео урок №1
Автор: Костянтин Чорний
В этом видео уроке будет рассмотрено решение дополнительных и домашних заданий к первому уроку курса C# Базовый. В ходе урока будет продемонстрирована работа с классами, полями, свойствами, конструкторами и методами.
Objective-C | Урок 5 - Введение в UICollectionView или выводим объекты по сетке.
В этом уроке, по курсу видеоуроков - "Программированию на Objective-C под iOS". Знакомство с еще одним типом вывода информации на экран вашего iPhone, а именно использование UIControllerView. Заходите на видео блог ITVDN и находите еще больше полезных видео.
Objective-C | Урок 15 - Делаем локализацию в приложении для iOS.
В этом видео уроке, по курсу видео уроков - "Программирование на языке Objective-C под iOS". Практический пример создания локализации для приложения. Использование функции перевода языка в Storyboard и перевод строк используя NSLocalizedString. Приятного просмотра с ITVDN.
Як стати C#/.NET розробником
Автор: Ярослав Кучук
<p>Итак, решение стать девелопером принято. Или только витает в воздухе. Давайте поговорим о том, как это выглядит и что для этого нужно в контексте .NET. На вебинаре будут затронуты типовые проекты, градации проектов, базовый стек и техники разработки. <br />
<br />
<strong>План вебинара:</strong></p>
<ul>
<li>Виды девелопмента (BackEnd, FrontEnd, Full-stack).</li>
<li>Hard skills & Soft skills.</li>
<li>Платформа .NET.</li>
<li>Эволюция .NET (от 1.1 до .NET Core).</li>
<li>Сопутствующие знания – SQL/JavaScript.</li>
<li>Мои Hard Skills – основные топики внутри .NET-вселенной.</li>
<li>Структуры данных и алгоритмы.</li>
<li>Структуры данных и алгоритмы в .NET.</li>
<li>Мой рабочий день на старте карьеры.</li>
<li>Карьерная лестница.</li>
<li>Вопросы и ответы</li>
</ul>
<p><strong>Целевая аудитория:</strong><br />
Данный вебинар будет интересен как студентам старших курсов технических специальностей, так и начинающим разработчикам. Более опытной аудитории может представлять практический интерес в рамках карьерного развития. В ходе вебинара будут выделены основные требования к знаниям, идентифицированы карьерные пути развития.</p>
C++ | Урок №12 Массивы и строки.
Этот уроке, по курсу видео уроков, посвященно такой теме , как "Массивы и строки в С++".
Что такое массив для чего их используют? Пример создания моссива в С++. Работа со строками.
Смотрите еще больше полезных видео вместе с ITVDN.
Новий пакет CodeMaster - відео курси та професійний софт у подарунок
Автор: Редакція ITVDN
Привіт!
Друзі, у партнерстві з JetBrains ми створили для вас новий акційний пакет підписки CodeMaster, який дозволить вам протягом 9 місяців навчатися за відео курсами ITVDN і використовувати ліцензійні ПРОФЕСІЙНІ продукти від JetBrains.
Акційний пакет можна буде придбати з 11 до 18 липня.
Що входить до пакету “CodeMaster”:
Доступ до всіх відео курсів ITVDN (250+ з різних мов і технологій) на 9 місяців
Вихідний код навчальних проєктів
Презентації, опорний конспект, д/з
Перевірка 10 домашніх завдань
Консультації з тренером – 60 хвилин
Доступ до інтерактивних практикумів
Онлайн тестування (16 тестів) та сертифікати за пройденими курсами
Дипломи з пройдених спеціальностей
Доступ до нових курсів, які виходитимуть під час дії підписки
Ключі на професійний софт від JetBrains (IntelliJ IDEA, PyCharm, Webstorm та Rider) на 6 місяців
Повна вартість пакету – 134 USD.
Акційна вартість – 67 USD🔥(це менше 8 USD на місяць!)
Навчайтесь у найзручнішому форматі, експериментуйте, шукайте те, що вам цікаво, і ставайте профі!
Що можна вивчати на ITVDN:
програмування мовами Python, Java, JavaScript, C#, С++, PHP та ін.;
тестування програмного забезпечення (Manual QA + Automation QA);
веброзробку і вебдизайн (UX/UI);
розробку ігор на Unity;
Android Mobile Development;
технології для роботи з базами даних.
Придбавши пакет “CodeMaster”, ви зможете:
протягом 9 місяців вивчати що завгодно на ITVDN – без меж;
опанувати одну ІТ-спеціальність в спокійному темпі;
розробити потужне портфоліо;
отримати сертифікати з усіх пройдених курсів;
знайти свою першу роботу в ІТ і продовжити поглиблювати свої знання.
Акційний пакет “CodeMaster” можна придбати з 11 до 18 липня. Поспішайте скористатися цією вигідною пропозицією і забезпечити себе величезною базою навчальних матеріалів з ІТ!
Оплата частинами – подвійна вигода
Є декілька варіантів оплати навчання, ми рекомендуємо найбільш вигідний – повна оплата пакету зі знижкою без додаткових комісій за допомогою сервісу «Оплата частинами» від Монобанку чи ПриватБанку, коли банк вносить за вас повну оплату, а ви потім повертаєте йому щомісячними платежами. Щоб скористатися послугою “Оплата частинами”, оберіть валюту українська гривня (UAH)
Святковий подарунок другу! Або собі на потім 😉
Якщо у вас є друг, який хоче опанувати IT-професію або розширити свої знання у програмуванні, ви можете порадувати його на День народження чи до іншої зручної дати – вручити подарунковий сертифікат із доступом до всіх відео курсів. Під час акції подарункові сертифікати також продаватимуться зі знижками, а активувати їх можна будь-коли протягом року.
Новий відеокурс – Алгоритми та структури даних мовою C#
Автор: Редакція ITVDN
Курс «Алгоритми та структури даних на C#» — це ваш квиток у світ, де дані перетворюються на магічний інструмент для створення швидких і надійних рішень. Від простих зв’язаних списків до потужних графів та оптимізованих алгоритмів — ви поступово опановуватимете глибокі концепції, які змінюють спосіб програмування.
Ви навчитеся аналізувати ефективність алгоритмів, працювати з базовими структурами, як-от списки та масиви, і зануритеся у складніші концепції, такі як дерева, графи та хеш-таблиці. Цей курс не лише навчить вас писати код, а й допоможе мислити, як архітектор, який будує надійні й ефективні системи.
Курс «Алгоритми та структури даних мовою #C» охоплює такі теми:
Оцінка ефективності алгоритмів — асимптотична складність, О-нотація, порівняння алгоритмів.
Однозв’язкові та двозв’язкові списки.
Динамічні масиви.
Стек (Stack) та черга (Queue).
Множини (Set) — об'єднання, перетин, різниця, симетрична різниця.
Алгоритми сортування — вибірка, вставка, злиття, Timsort.
Хеш-таблиці — принцип роботи, хеш-функції, обробка колізій.
Дерева — бінарне дерево пошуку, АВЛ-дерево, балансування.
Графи — представлення, пошук у глибину, пошук у ширину, алгоритм Дейкстри, алгоритм Флойда-Уоршелла, топологічне сортування.
Динамічне програмування — базові прийоми, задачі про рюкзак, оптимальний маршрут.
Кожне заняття — це баланс між теорією та практикою, де ви не просто вивчаєте алгоритми, а й навчаєтеся застосовувати їх у реальних завданнях. Завдяки цьому курсу ви зможете створювати оптимальні рішення, які працюють як годинниковий механізм.
Автор курсу – Зінов’єва Анастасія, .NET Developer
Курс складається з 10 відеоуроків загальною тривалістю 5 години 14 хвилини.
Структура курсу:
Введення у структури та алгоритми даних. Зв'язані списки
Динамічний масив, Stack, Queue і Set.
Алгоритми сортування.
Хеш-таблиці. Дерева.
Бінарне дерево пошуку. АВЛ-дерево.
Графи. Частина 1.
Графи. Частина 2.
Графи. Частина 3.
Динамічне програмування.
Задачі. Практикум.
Чого ви навчитеся на даному курсі:
Оцінювати час виконання алгоритмів та ефективно їх оптимізувати.
Розуміти структури даних — від стеків і черг до дерев та хеш-таблиць.
Реалізовувати популярні алгоритми, як-от пошук найкоротшого шляху чи сортування Timsort.
Розв'язувати складні завдання — Ханойські вежі, комівояжер, динамічне програмування.
Попередні вимоги
Для тих, хто має базові знання C# і прагне підняти свої навички на новий рівень, створюючи потужні рішення.
Дивіться перший урок у вільному доступі. Курс вже доступний на нашому сайті в повному обсязі – до кожного уроку є практичні завдання та опорний конспект. Якщо у вас є активна підписка, ви можете дивитися його прямо зараз.
Що повинен знати C#/.NET розробник
Автор: Влад Сверчков
На сегодняшний день .NET программист может применять свои навыки в различных сферах разработки программных продуктов:
создание веб-приложений и веб-сервисов
создание настольных приложений;
создание облачных сервисов;
создание игр;
создание мобильных приложений.
Когда говорят о .NET разработчиках, имеют в виду программистов, которые пишут на языке С#. Этот язык программирования, как и вся платформа .NET, был создан, развивается и поддерживается компанией Microsoft, которая стабильно уже несколько десятилетий входит в TOP-10 компаний - мировых лидеров рынка информационных технологий. Все продукты компании Microsoft созданы на платформе .NET. Какие же технологии необходимо изучить, чтобы стать .NET программистом?
Поскольку львиная доля .NET-вакансий приходится именно на веб-сегмент, данная статья будет охватывать как фундамент, которым обязаны владеть все разработчики этой платформы, так и основные технологии серверной стороны веб-решений.
Язык программирования C# (“си шарп”)
Любой .NET разработчик не может называться и быть таковым, если он не умеет хорошо программировать на языке C#.
Это универсальный объектно-ориентированный язык, который является мощным инструментом создания программного обеспечения с широкой областью применения. При столь высокой функциональности он является достаточно несложным в изучении и отлично подойдет тем, кто собирается сделать первый шаг навстречу программированию.
Благодаря широкому спектру применения, С# является очень востребованным языком. Различные ресурсы по поиску работы предлагают большое количество вакансий, причем, как на крупные проекты с четко определенным консервативным стеком технологий, так и в компании, которые создают новый программный продукт с применением самых современных инструментов.
Компания Microsoft активно развивает свое детище - .NET направление, потому C# всегда актуален, идет расширение функционала, добавляются новые возможности. Тенденция последних лет - кроссплатформенность, реализуемая в .NET Core. Огромное количество учебных материалов, качественная официальная документация, видео курсы и образовательные вебинары - все это создает максимально комфортные условия для грамотного поэтапного изучения данного языка.
ООП
Объектно-ориентированное программирование - это методология разработки программного обеспечения, в основе которой лежат четыре главных принципа: абстракция, инкапсуляция, наследование и полиморфизм. Поскольку C# является объектно-ориентированным языком, необходимость изучения и полного понимания ООП парадигм обязательно. Однако, есть и приятная новость: все принципы быстро и легко усваиваются во время изучения C#.
Алгоритмы и структуры данных
Понимание алгоритмов и структур данных - обязательные знания для любого программиста.
Изучив структуры данных, вы сможете управлять сложностью своих программ, делая их более доступными для понимания, а также разрабатывать высокопроизводительные программы, которые будут эффективно работать с памятью.
Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач.
Шаблоны проектирования
Паттерны (они же шаблоны) представляют собой архитектурные конструкции, которые описывают типичные способы решения распространенных задач, возникающих в ходе проектирования программного обеспечения. Всего существует более двух десятков шаблонов, однако знать их все - это обязанность архитектора, а не .NET. разработчика. Обычно в одном проекте используется небольшое количество паттернов, поэтому вам достаточно знать самые популярные из них.
SQL
Structured Query Language - декларативный язык структурированных запросов, который создан для взаимодействия с базами данных. Особенность SQL состоит в том, что он лишь описывает необходимые компоненты и желаемые результаты, не указывая, как именно эти результаты должны быть получены.
Каждый программный продукт подразумевает работу с данными, будь то обыкновенная процедура приема данных от сервера (например, скачивание файлов) или внесение в БД информации о новом зарегистрированном пользователе - умение работать с данными одинаково важно во всех сферах разработки, разве что за исключением FrontEnd.
ASP.NET
Active Server Pages для .NET - платформа, использующая среду выполнения .NET Framework и предоставляющая необходимые службы для создания серверных веб-приложений и веб-сервисов. Является развитием более ранней технологии Microsoft ASP.
ASP.NET базируется на среде выполнения Common Language Runtime (CLR), которая является основой всех приложений Microsoft .NET. Также данная платформа имеет преимущество в скорости по сравнению со скриптовыми технологиями.
ASP.NET MVC является расширением ASP.NET и представляет собой платформу для создания веб-сервисов при помощи паттерна MVC. Данный шаблон предусматривает разделение приложения на три компонента: Модель, Представление, Контроллер, благодаря чему реализуется концепция разделения и закрепления ответственности за каждым компонентом, что упрощает разработку проектов.
ASP.NET Core
Фреймворк от компании Microsoft, который использует среду выполнения .NET Core, предназначен для разработки качественных современных веб-приложений и является продолжением развития платформы ASP.NET. Однако, это не просто обновленная технология. Выход ASP.NET Core фактически обозначил качественное изменение всей платформы. Последняя версия 3.0 была выпущена не так давно - в сентябре 2019 года. Главные особенности ASP.NET Core:
наличие открытого исходного кода на GitHub;
кроссплатформенность;
модульность;
расширяемость;
возможность применения облачных технологий.
Более подробную информацию обо всех нововведениях можно найти на официальном сайте Microsoft.
Таким образом, платформа .NET Core существенно расширила области применения технологии ASP.NET и предоставила разработчикам большое количество возможностей по созданию программного продукта.
Entity Framework 6
Entity Framework - специальная объектно-ориентированная технология на базе фреймворка .NET, которая позволяет разработчикам получать доступ к данным, используя концептуальную объектную модель, а не непосредственно реляционную базу данных. Благодаря такому подходу уменьшается количество кода, необходимое для получения доступа к базе, растет производительность и уменьшается время на поддержку объектов в приложениях, которые работают с данными.
В двух словах, эта технология позволяет программисту абстрагироваться от самой базы данных и работать с данными независимо от типа хранилища.
LINQ
Language Integrated Query (язык интегрированных запросов) - это простая и удобная .NET технология доступа к данным. Особенность данного языка запросов: возможность применения ко всем источникам данных (XML-документы, XML-потоки, наборы данных ADO.NET, базы данных SQL, массивы и коллекции .NET и т. д.) одного и того же самого подхода выборки данных.
Git
Наиболее популярная система контроля версий, которая позволяет вести историю разработки проекта с возможностью доступа к каждой сохраненной версии.
Данные системы позволяют команде программистов работать над одним проектом одновременно, сохраняя внесенные изменения, а также отслеживать выполнение задач каждым членом группы.
Не во всех вакансиях можно встретить среди требований владение системой контроля версий, однако, знание Git или ее аналогов даст вам дополнительное преимущество перед остальными кандидатами.
Английский язык
Традиционное требование для каждого разработчика в IT. Знание языка на уровне чтения технической документации и комментирования кода вполне достаточно.
Подведем итоги
В статье были перечислены основные технологии, которыми должен обладать каждый .NET-программист. Поскольку веб-разработка ныне является очень популярной и востребованной, мы также добавили в список .NET средства, которые используются во время создания соответствующих серверных веб-решений. Однако среди всех пунктов наиболее важным является знание языка С# - каждый “дотнетчик” обязан им владеть на высоком уровне.
В свою очередь, перечень можно дополнить такими технологиями, как: TDD (разработка через тестирование), WCF, Unit тестирование, рефакторинг приложений. Их знание не является обязательным, однако, дает дополнительное преимущество перед другими кандидатами в глазах работодателя.
Также вы можете ознакомиться со списком всех необходимых к изучению технологий на странице специальности .NET Developer. Комплексная программа обучения состоит из 49 видео курсов общей продолжительностью 346 часов. Перейдя на страницу, вы найдете много полезной информации - как для новичка, так и для разработчика, желающего углубить и дополнить свои знания.
Более подробно тему требований IT компаний к .NET разработчику рассматривал на вебинаре Виталий Емец - FullStack Developer, Microsoft Certified Specialist. Почему многие выбирают веб-направление и какими технологиями должен владеть кандидат? Ответы на эти и другие вопросы вы найдете в этом видео - “Как стать C#/.NET разработчиком?”.
ITVDN желает Вам достижения Ваших целей и готов быть надежным помощником в вопросах обучения программированию.
Оставайтесь с ITVDN!
Використання LINQ на об'єктах у мові C#
Автор: Редакція ITVDN
Введение
Применение LINQ к объектам подразумевает, что можно использовать LINQ для запроса объекта из коллекции. Возможно использование LINQ для получения доступа к структурам данных, хранящихся в оперативной памяти (в структурах данных in-memory). Возможно запросить любой тип объекта, который реализует интерфейс IEnumerable или IEnumerable, относящийся к общему типу. Списки, массивы, словари – некоторые коллекции объектов, запрашиваемые с помощью LINQ.
В этой статье будет показано, как выполняется запрос различных объектов с использованием операторов LINQ и избегается необходимость использования метода зацикливания для фильтрации данных.
Не используя LINQ, необходимо проходить через значения снова и снова, а затем находить необходимые детали. Однако, с помощью LINQ можно запросить непосредственно сами коллекции данных и отфильтровать искомые значения, не используя зацикливание. LINQ предоставляет мощные возможности по фильтрации, группировке и упорядочиванию, не требующие больших объемов исходного кода. Например, если необходимо выяснить типы, хранящиеся в сборке, затем отфильтровать необходимые данные, можно использовать LINQ для запроса деталей сборки, используя классы System.Reflection.
Пространство имен System.Reflection содержит типы, извлекающие информацию о сборках, модулях, членах, параметрах и других объектах как о коллекциях управляемого кода, исследуя их метаданные. Кроме того, файлы в папке представляют собой набор объектов и эти объекты можно запросить, используя LINQ. Далее будут представлены некоторые примеры запросов.
Массив целых чисел
Следующий пример демонстрирует целочислительный массив, содержащий некоторый набор целых чисел. Можно применить запросы LINQ в массиве для извлечения требуемых значений.
int[] integers = { 1, 6, 2, 27, 10, 33, 12, 8, 14, 5 };
IEnumerable twoDigits =
from numbers in integers
where numbers >= 10
select numbers;
Console.WriteLine("Integers > 10:");
foreach (var number in twoDigits)
{
Console.WriteLine(number);
}
Переменная integers содержит массив целых чисел с разными значениями. Переменная twoDigits, имеющая тип IEnumerable, проводит запрос. Для получения результата необходимо выполнение запроса.
Исполнение запроса произойдет, когда переменная запроса будет итерироваться в цикле вызовом GetEnumerator() для перечисления результата. Любая переменная типа IEnumerable может быть перечислена с использованием цикла foreach. Типы, поддерживающие IEnumerable или производный интерфейс, например, IQueryable, называют запрососпособными типами. Присутствуют также некоторые нетипичные коллекции данных, например, ArrayList, которые также могут быть запрошены с помощью LINQ. Для этого необходимо явно объявить тип ранжированной переменной для конкретного типа объекта в коллекции, как в примерах ниже.
Переменная twoDigits проведет запрос для извлечения значений, которые не меньше 10. Таким образом одно за другим извлекаются числа из массива. Цикл будет выполнять запрос, а затем будет выводить в консоль значения, полученные из массива. Как можно заметить, выше продемонстрирован достаточно простой способ получения необходимых данных из коллекции.
Если нужны только первые четыре значения коллекции, можно использовать метод запроса Take() на необходимой коллекции. Ниже написано, как можно извлечь первые четыре элемента коллекции и вывести их в консоль, используя цикл.
IEnumerable firstFourNumbers = integers.Take(4);
Console.WriteLine("First 4 numbers:");
foreach (var num in firstFourNumbers)
{
Console.WriteLine(num);
}
Противоположность метода Take() – оператор Skip(), который используется для пропуска определенного количества первых элементов и получения остальных. В примере ниже будет пропущено первые 4 элемента.
IEnumerable skipFirstFourNumbers = integers.Skip(4);
Console.WriteLine("Skip first 4 numbers:");
foreach (var num in skipFirstFourNumbers)
{
Console.WriteLine(num);
}
В примерах выше было продемонстрированно, как извлечь/пропустить определенное количество начальных элементов списка. Если необходимо извлечь/пропустить заранее неизвестное число элементов, используются методы TakeWhile() и SkipWhile(), которые работают, пока не будет найдено совпадение.
В коде ниже будет изображено, каким образом получить все номера из коллекции, которые стоят до значения 50. TakeWhile() использует выражение для включения элементов коллекции, пока условие истинно, и игнорирует другие элементы списка. Выражение представляет собой условие, проверяющее элементы коллекции на совпадение.
int[] integers = { 1, 9, 5, 3, 7, 2, 11, 23, 50, 41, 6, 8 };
IEnmerable takeWhileNumber = integers.TakeWhile(num =>
num.CompareTo(50) != 0);
Console.WriteLine("Take while number equals 50");
foreach (int num in takeWhileNumber)
{
Console.WriteLine(num.ToString());
}
Подобным образом работает и метод SkipWhile(), только он пропускает значения, а не извлекает их. Самая высокая эффективность использования данных методов наблюдается при их использовании на упорядоченных списках, т.к. их выполнение прекращается при первом невыполнении условия поиска.
IEnumerable skipWhileNumber = integers.SkipWhile(num =>
num.CompareTo(50) != 0);
Console.WriteLine("Skip while number equals 50");
foreach (int num in skipWhileNumber)
{
Console.WriteLine(num.ToString());
}
Коллекции объектов
В этом разделе будет показано, каким образом можно запросить произвольную коллекцию объектов. Будет использован объект Icecream, построена коллекция, после чего ее можно будет запросить. Класс Icecream в следующем коде содержит различные свойства (имя, ингредиенты, вес, холестерин и т.д.)
public class Icecream
{
public string Name { get; set; }
public string Ingredients { get; set; }
public string TotalFat { get; set; }
public string Cholesterol { get; set; }
public string TotalCarbohydrates { get; set; }
public string Protein { get; set; }
public double Price { get; set; }
}
Далее строится список Icecreams, используя ранее определенный класс.
List icecreamsList = new List
{
new Icecream {Name="Chocolate Fudge Icecream", Ingredients="cream,
milk, mono and diglycerides...", Cholesterol="50mg",
Protein="4g", TotalCarbohydrates="35g", TotalFat="20g",
Price=10.5
},
new Icecream {Name="Vanilla Icecream", Ingredients="vanilla extract,
guar gum, cream...", Cholesterol="65mg", Protein="4g",
TotalCarbohydrates="26g", TotalFat="16g", Price=9.80 },
new Icecream {Name="Banana Split Icecream", Ingredients="Banana, guar
gum, cream...", Cholesterol="58mg", Protein="6g",
TotalCarbohydrates="24g", TotalFat="13g", Price=7.5 }
};
Имеется коллекция icecreamsList, состоящая из трех объектов со значениями типа Icecream. Пусть теперь необходимо извлечь всё мороженное, стоящее меньше 10. Можно использовать зацикливание, при котором необходимо смотреть на цену каждого элемента списка друг за другом, затем извлечь объекты, которые имеют меньшие значения поля Price. Использование LINQ позволяет избежать итерирования всех объектов и их свойств для поиска необходимых, т.е. облегчает поиск. Далее будет представлен запрос, выбирающий мороженое с низкими ценами из коллекции. Для работы запрос использует оператор where. Внешне запрос напоминает запрос из реляционной БД. Запрос выполняется, когда переменная типа IEnumerable перечислена в цикле.
List Icecreams = CreateIcecreamsList();
IEnumerable IcecreamsWithLessPrice =
from ice in Icecreams
where ice.Price < 10
select ice;
Console.WriteLine("Ice Creams with price less than 10:");
foreach (Icecream ice in IcecreamsWithLessPrice)
{
Console.WriteLine("{0} is {1}", ice.Name, ice.Price);
}
Также можно использовать ArrayList для хранения объектов, как было использовано List. Запрос LINQ, в таком случае, можно использовать для получения конкретных объектов из коллекции в зависимости от потребности. Например, нижеследующий код для добавления тех же самых объектов Icecreams в ArrayList, как это делалось в предыдущем примере.
ArrayList arrListIcecreams = new ArrayList();
arrListIcecreams.Add( new Icecream {Name="Chocolate Fudge Icecream",
Ingredients="cream, milk, mono and diglycerides...",
Cholesterol="50mg", Protein="4g", TotalCarbohydrates="35g",
TotalFat="20g", Price=10.5 });
arrListIcecreams.Add( new Icecream {Name="Vanilla Icecream",
Ingredients="vanilla extract, guar gum, cream...",
Cholesterol="65mg", Protein="4g", TotalCarbohydrates="26g",
TotalFat="16g", Price=9.80 });
arrListIcecreams.Add( new Icecream {Name="Banana Split Icecream",
Ingredients="Banana, guar gum, cream...", Cholesterol="58mg",
Protein="6g", TotalCarbohydrates="24g", TotalFat="13g", Price=7.5
});
Следующий запрос выбирает недорогое мороженое из списка.
var queryIcecreanList = from Icecream icecream in arrListIcecreams
where icecream.Price < 10
select icecream;
Как будет показано ниже, можно использовать цикл для отображения цены объектов, извлеченных вышеуказанным запросом.
foreach (Icecream ice in queryIcecreanList)
Console.WriteLine("Icecream Price : " + ice.Price);
Чтение из строк
Как известно, строка – набор символов. Т.е. можно запросить непосредственно строковое значение. Для примера можно рассмотреть случай, когда необходимо посчитать количество заглавных букв в строке aString:
string aString = "Satheesh Kumar";
Далее строится запрос на чтение строки и нахождение количества заглавных букв. Тип запроса – IEnumerable.
IEnumerable query =
from ch in aString
where Char.IsUpper(ch)
select ch;
Запрос использует метод Char.IsUpper в условии where для нахождения букв в верхнем регистре из строки. Следующий код отображает количество символов, написанных в верхнем регистре в данной строке.
Console.WriteLine("Count = {0}", count);
Чтение из текстового файла
Файл можно назвать коллекцией независимо от хранящихся в нем данных. Будет создан текстовый файл, содержащий некоторое количество строк. Для получения значений из текстового файла можно использовать запросы LINQ. В примере будет использован текстовый файл, содержащий названия разнообразных сортов мороженого. Для чтения каждой строки текстового файла можно использовать объект StreamReader. Для хранений значений, считанных из текстового файла, создается объект List. После записи в список значений, полученных из текстового файла, можно достаточно просто запросить список, используя LINQ, как было показано выше. В примере ниже рассмотрен код, считывающий строки из текстового файла и загружающий их в список строк.
List IcecreamNames = new List();
using( StreamReader sReader = new StreamReader(@"C:Icecreams.txt"))
{
string str;
str = sReader.ReadLine();
while (str != null)
{
IcecreamNames.Add(str);
}
}
В следующем коде считывается список строк и возвращаются названия мороженого, отсортированные по убыванию.
IEnumerable icecreamQuery =
from name in IcecreamNames
orderby name descending
select name;
Для проверки выполнения запроса можно вывести названия мороженого на дисплей, например, так
foreach (string nam in icecreamQuery)
{
Console.WriteLine(nam);
}
Следующий код выводит названия и проверяет результат работы запроса.
foreach (string nam in icecreamQuery)
{
Console.WriteLine(nam);
}
Как и коллекции, использованные в примерах выше, библиотека классов .NET может быть использована для чтения метаданных сборки .NET и создавать типы, члены типов, параметры, и другие свойства коллекции. Эти коллекции поддерживают интерфейс IEnumerable, который помогает запрашивать с использованием LINQ.
LINQ имеет много стандартных операторов запросов, которые можно использовать для запроса разных объектов, поддерживающих IEnumerable. На этих объектах можно использовать все стандартные операторы запросов, перечисленные ниже.
Тип оператора запросов
Операторы запроса
ограничение
Where, OfType
проекция
Select, SelectMany
присоединение
Join, GroupJoin
Конкатенация
Concat
Сортировка
OrderBy, OrderByDescending, ThenBy, ThenByDescending, Reverse
установка
Distinct, Except, Intersect, Union
группировка
GroupBy
Преобразование
AsEnumerable, Cast, OfType, ToArray, ToDictionary, ToList, ToLookup
Сравнение
SequenceEqual
Выбор элемента
DefaultIfEmpty, ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last, LastOrDefault, Single, SingleOrDefault
образование
Empty, Range, Repeat
Количественное определение
All, Any, Contains
Агрегирование
Aggregate, Average, Count, LongCount, Max, Min, Sum
Разметка
Skip, SkipWhile, Take, Takewhile
Итог
В статья были рассмотрены некоторые примеры выполнения запросов с использованием операторов LINQ. LINQ можно использовать на любом объекте, поддерживающем интерфейс IEnumerable. Использование LINQ позволяет избежать использования циклических методов для получения необходимых данных из коллекции. LINQ предоставляет мощные методы для фильтрации, группировки и упорядочения данных. Использование LINQ позволит уменьшить объем исходного кода, тем самым ускорив время разработки.
Источник: http://www.codedigest.com/Articles/CSHARP/218_LINQ_to_Objects_in_C_.aspx