Синтаксис:
- Лямбда-выражение: (параметры) => выражение
- Лямбда-оператор: {условный оператор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# лямбда-выражение принимает выражения/условные операторы в качестве своего тела без имени. Нам нужно указать параметры. Затем ему присваиваются выражения. В основном они используются для фильтрации записей из данного источника данных, преобразования элементов и выбора элементов из источника/последовательности данных. В этом руководстве мы обсудили пять различных примеров, которые выбирают, фильтруют и преобразовывают элементы с помощью лямбда-выражения.