books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

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

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

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;

  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)

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

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


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

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


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*