Лямбда-выражения C# LINQ

Lambda Vyrazenia C Linq



Лямбда-выражение в C# напрямую принимает выражения/условные операторы в качестве своего тела без имени. Нам нужно указать параметры, а затем ему присваиваются выражения. При работе с Language Integrated Query (LINQ) вам может потребоваться преобразовать данные, присутствующие в источнике данных, или преобразовать один источник данных в другой источник данных. В этом руководстве мы увидим, как фильтровать записи из источника данных, указав лямбда-выражение, и выбирать записи из источника данных.

Синтаксис:

  1. Лямбда-выражение: (параметры) => выражение
  2. Лямбда-оператор: {условный оператор1 оператор2 … }

Пример 1:

Создайте список «удобрения», содержащий пять строк. Используйте лямбда-выражение, которое возвращает все строки из списка.

с использованием Система ;
с использованием System.Linq ;
с использованием System.Collections.Generic ;

сорт ЛямбдаВыражениеПример {

статический публичный пустота Основной ( )
{

// Создаем Список удобрений
Список удобрений '=' новый Список ( ) ;
удобрения . Добавлять ( 'Мочевина' ) ;
удобрения . Добавлять ( 'азот' ) ;
удобрения . Добавлять ( 'калий' ) ;
удобрения . Добавлять ( 'Диаммонийфосфат' ) ;
удобрения . Добавлять ( 'фосфор' ) ;

// Используйте LambdaExpression для выбора всех удобрений
был результат '=' удобрения . Выбирать ( inp1 => inp1 ) ;
для каждого ( был я в результат )
{
Консоль . WriteLine ( я ) ;
}

}
}

Выход:









Объяснение:



1. Создайте список строкового типа с именем «удобрения». Добавьте пять строк в этот список.

2. Используйте лямбда-выражение, чтобы выбрать все удобрения. Здесь выражение используется с оператором «Выбрать». Выражение вх1 => вх1. Затем мы используем цикл foreach для отображения строк, возвращаемых лямбда-выражением.





Пример 2:

Используйте лямбда-выражение, чтобы выбрать удобрения, в состав которых входит «Фосфат».

с использованием Система ;
с использованием System.Linq ;
с использованием System.Collections.Generic ;

сорт ЛямбдаВыражениеПример {

статический публичный пустота Основной ( )
{

// Создаем Список удобрений
Список удобрений '=' новый Список ( ) ;
удобрения . Добавлять ( 'Мочевина' ) ;
удобрения . Добавлять ( 'азот' ) ;
удобрения . Добавлять ( 'орто-фосфат' ) ;
удобрения . Добавлять ( 'Диаммонийфосфат' ) ;
удобрения . Добавлять ( 'фосфор' ) ;

// Используйте LambdaExpression, чтобы выбрать удобрения, которые включают - 'Фосфат'
был результат '=' удобрения . Где ( inp1 => inp1 . Содержит ( 'Фосфат' ) ) ;
для каждого ( был я в результат )
{
Консоль . WriteLine ( я ) ;
}

}
}

Выход:



Есть две строки, в которых есть слово «фосфат».

Объяснение:

1. Создайте список строкового типа с именем «удобрения». Добавьте пять строк в этот список.

2. Здесь выражение используется с оператором «Где». Выражение inp1 => inp1.Contains('Фосфат'). Затем мы используем цикл foreach для отображения строк, возвращаемых лямбда-выражением.

Пример 3:

У нас есть список (order_quantity), содержащий три заказа. Укажите лямбда-выражение, чтобы добавить 5 к каждому заказу.

с использованием Система ;
с использованием System.Linq ;
с использованием System.Collections.Generic ;

сорт ЛямбдаВыражениеПример {

статический публичный пустота Основной ( )
{

// Создать список количеств
Список количество_заказов '=' новый Список ( ) ;
Заказанное Количество . Добавлять ( 5 ) ;
Заказанное Количество . Добавлять ( 7 ) ;
Заказанное Количество . Добавлять ( 8 ) ;

// Используйте LambdaExpression до 5 для каждого ордера.
был результат '=' Заказанное Количество . Выбирать ( inp1 => inp1 + 5 ) ;
для каждого ( был я в результат )
{
Консоль . WriteLine ( я ) ;
}

}
}

Выход:

Список [5,7,8] преобразуется в [10,12,13].

Объяснение:

1. Создайте список величин типа Integer.

2. Сначала мы выбираем заказы, а затем добавляем 5 к каждому заказу. Итак, используется оператор «Select». Выражение вх1 => вх1 + 5.

Пример 4:

Создайте источник данных списка типа Event (с тремя атрибутами — Event_Name, Event_Status и Event_Budget) и верните записи с Event_Budget, превышающим 5000.

с использованием Система ;
с использованием System.Linq ;
с использованием System.Collections.Generic ;

// Создадим класс с именем 'Event_Source' с 5 событиями.
общественный сорт Источник_события
{
общественный статический пустота Основной ( )
{
// Список событий
Список событий '=' новый Список ( ) {
новый Событие ( ) { Название события '=' «Технический лагерь» ,Event_Status '=' 'Запланировано' ,Event_Budget '=' 10000 } ,
новый Событие ( ) { Название события '=' «Маркетинговый лагерь» ,Event_Status '=' 'Завершенный' ,Event_Budget '=' 5000 } ,
новый Событие ( ) { Название события '=' 'Другой' ,Event_Status '=' 'Запланировано' ,Event_Budget '=' 1000 } ,
новый Событие ( ) { Название события '=' 'Политика' ,Event_Status '=' 'Запланировано' ,Event_Budget '=' 13000 } ,
новый Событие ( ) { Название события '=' 'Финансы' ,Event_Status '=' 'Завершенный' ,Event_Budget '=' 20000 } ,
} ;

//Event_Budget больше 5000.
был результат '=' события . Где ( inp1 => inp1 . Event_Budget > 5000 ) ;
для каждого ( был я в результат ) {
Консоль . WriteLine ( 'ИМЯ: ' + я . Название события + ' ПОЛОЖЕНИЕ ДЕЛ: ' + я . Event_Status + ' БЮДЖЕТ: ' + я . Event_Budget ) ;
}
}
}

общественный сорт Событие {
общественный нить Название события { получать ; набор ; }
общественный нить Event_Status { получать ; набор ; }
общественный инт Event_Budget { получать ; набор ; }
}

Выход:

В списке «события» есть три записи с Event_Budget больше 5000.

Объяснение:

1. Сначала мы создаем класс «Событие» с тремя атрибутами.

2. Затем мы создаем список из пяти событий.

3. Использование inp1 => inp1.Event_Budget > 5000 лямбда-выражении мы выбираем записи с Event_Budget больше 5000.

Пример 5:

Используйте предыдущий код и измените лямбда-выражение. Верните события с Event_Name, которое заканчивается на «Camp», и с Event_Status, которое «Запланировано».

//Лямбда-выражение — Event_Name заканчивается на «Camp», а Event_Status — «Planned».
был результат '=' события . Где ( inp1 => inp1 . Название события . заканчивается с ( 'Лагерь' ) && inp1 . Event_Status == 'Запланировано' ) ;
для каждого ( был я в результат ) {
Консоль . WriteLine ( 'ИМЯ: ' + я . Название события + ' ПОЛОЖЕНИЕ ДЕЛ: ' + я . Event_Status + ' БЮДЖЕТ: ' + я . Event_Budget ) ;
}

Выход:

Существует только одна запись, удовлетворяющая обоим условиям.

Объяснение:

Здесь мы указываем два условия в лямбда-выражении. Оператор && (и) используется, чтобы сделать два условия истинными. Первое условие использует метод EndsWith() для проверки того, заканчивается ли строка заданной строкой. Второе условие использует оператор «Сравнение» (==), чтобы проверить, равны ли оба значения или нет.

Заключение

В C# лямбда-выражение принимает выражения/условные операторы в качестве своего тела без имени. Нам нужно указать параметры. Затем ему присваиваются выражения. В основном они используются для фильтрации записей из данного источника данных, преобразования элементов и выбора элементов из источника/последовательности данных. В этом руководстве мы обсудили пять различных примеров, которые выбирают, фильтруют и преобразовывают элементы с помощью лямбда-выражения.