» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

На нашем литературном портале можно бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю, Троелсен Эндрю . Жанр: Базы данных. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Название: Язык программирования C#9 и платформа .NET5
Дата добавления: 22 август 2024
Количество просмотров: 240
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

Язык программирования C#9 и платформа .NET5 читать книгу онлайн

Язык программирования C#9 и платформа .NET5 - читать бесплатно онлайн , автор Троелсен Эндрю

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.

Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

Перейти на страницу:

static void GetNamesAndDescriptionsTyped(

  ProductInfo[] products)

{

  Console.WriteLine("Names and Descriptions:");

  IEnumerable<ProductInfoSmall> nameDesc =

    from p

    in products

    select new ProductInfoSmall

      { Name=p.Name, Description=p.Description };

  foreach (ProductInfoSmall item in nameDesc)

  {

    Console.WriteLine(item.ToString());

  }

}

При проецировании LINQ у вас есть выбор, какой метод использовать (в анонимные или в строго типизированные объекты). Решение, которое вы примете, полностью зависит от имеющихся бизнес-требований. 

Подсчет количества с использованием класса Enumerable

Во время проецирования новых пакетов данных у вас может возникнуть необходимость выяснить количество элементов, возвращаемых внутри последовательности. Для определения числа элементов, которые возвращаются из выражения запроса LINQ, можно применять расширяющий метод Count() класса Enumerable. Например, следующий метод будет искать в локальном массиве все объекты string, которые имеют длину, превышающую шесть символов, и выводить их количество:

static void GetCountFromQuery()

{

  string[] currentVideoGames = {"Morrowind", "Uncharted 2",

                                "Fallout 3", "Daxter", "System Shock 2"};

  // Получить количество элементов из запроса.

  int numb =

      (from g in currentVideoGames where g.Length > 6 select g).Count();

  // Вывести количество элементов.

  Console.WriteLine("{0} items honor the LINQ query.", numb);

}

Изменение порядка следования элементов в результирующих наборах на противоположный

Изменить порядок следования элементов в результирующем наборе на противоположный довольно легко с помощью расширяющего метода Reverse<T>() класса Enumerable. Например, в показанном далее методе выбираются все элементы из входного параметра ProductInfo[] в обратном порядке:

static void ReverseEverything(ProductInfo[] products)

{

  Console.WriteLine("Product in reverse:");

  var allProducts = from p in products select p;

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  foreach (var prod in allProducts.Reverse())

  {

    Console.WriteLine(prod.ToString());

  }

}

Выражения сортировки

В начальных примерах настоящей главы вы видели, что в выражении запроса может использоваться операция orderby для сортировки элементов в подмножестве по заданному значению. По умолчанию принят порядок по возрастанию, поэтому строки сортируются в алфавитном порядке, числовые значения — от меньшего к большему и т.д. Если вы хотите просматривать результаты в порядке по убыванию, просто включите в выражение запроса операцию descending. Взгляните на следующий метод:

static void AlphabetizeProductNames(ProductInfo[] products)

{

  // Получить названия товаров в алфавитном порядке.

  var subset = from p in products orderby p.Name select p;

  Console.WriteLine("Ordered by Name:");

  foreach (var p in subset)

  {

    Console.WriteLine(p.ToString());

  }

}

Хотя порядок по возрастанию является стандартным, свои намерения можно прояснить, явно указав операцию ascending:

var subset = from p in products orderby p.Name ascending select p;

Для получения элементов в порядке убывания служит операция descending:

var subset = from p in products orderby p.Name descending select p;

LINQ как лучшее средство построения диаграмм Венна

Класс Enumerable поддерживает набор расширяющих методов, которые позволяют применять два (или более) запроса LINQ в качестве основы для нахождения объединений, разностей, конкатенаций и пересечений данных. Первым мы рассмотрим расширяющий метод Except(). Он возвращает результирующий набор LINQ, содержащий разность между двумя контейнерами, которой в этом случае является значение Yugo:

static void DisplayDiff()

{

  List<string> myCars =

    new List<String> {"Yugo", "Aztec", "BMW"};

  List<string> yourCars =

    new List<String>{"BMW", "Saab", "Aztec" };

  var carDiff =

    (from c in myCars select c)

Перейти на страницу:
Комментариев (0)