Синтакса:
- Ламбда израз: (параметри) => израз
- Ламбда изјава: { условни исказ1 наредба2 … }
Пример 1:
Направите листу „ђубрива“ која садржи пет низова. Користите ламбда израз који враћа све стрингове са листе.
Користећи Систем ;Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;
класа ЛамбдаЕкпрессионЕкампле {
статичне јавности празнина Главни ( )
{
// Направите листу ђубрива
Наведите ђубрива = Нова Листа ( ) ;
ђубрива . Додати ( 'уреа' ) ;
ђубрива . Додати ( 'азот' ) ;
ђубрива . Додати ( 'калијум' ) ;
ђубрива . Додати ( 'Ди-амонијум фосфат' ) ;
ђубрива . Додати ( 'фосфор' ) ;
// Користите ЛамбдаЕкпрессион да изаберете сва ђубрива
био резултат = ђубрива . Изаберите ( инп1 => инп1 ) ;
за сваки ( био и ин резултат )
{
Конзола . ВритеЛине ( и ) ;
}
}
}
Излаз:
Објашњење:
1. Направите листу типа низа под називом „ђубрива“. Додајте пет низова овој листи.
2. Користите ламбда израз да изаберете сва ђубрива. Овде се израз користи са оператором „Селецт“. Израз је инп1 => инп1. Затим користимо „фореацх“ петљу да прикажемо низове које враћа ламбда израз.
Пример 2:
Користите ламбда израз да изаберете ђубрива која укључују „фосфат“.
Користећи Систем ;Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;
класа ЛамбдаЕкпрессионЕкампле {
статичне јавности празнина Главни ( )
{
// Направите листу ђубрива
Наведите ђубрива = Нова Листа ( ) ;
ђубрива . Додати ( 'уреа' ) ;
ђубрива . Додати ( 'азот' ) ;
ђубрива . Додати ( 'орто - фосфат' ) ;
ђубрива . Додати ( 'Ди-амонијум фосфат' ) ;
ђубрива . Додати ( 'фосфор' ) ;
// Користите ЛамбдаЕкпрессион да изаберете ђубрива која укључују – „фосфат“
био резултат = ђубрива . Где ( инп1 => инп1 . Садржи ( 'фосфат' ) ) ;
за сваки ( био и ин резултат )
{
Конзола . ВритеЛине ( и ) ;
}
}
}
Излаз:
Постоје две жице које садрже „фосфат“.
Објашњење:
1. Направите листу типа низа под називом „ђубрива“. Додајте пет низова овој листи.
2. Овде се израз користи са оператором „Где“. Израз је инп1 => инп1.Садржи(“Фосфат”). Затим користимо „фореацх“ петљу да прикажемо низове које враћа ламбда израз.
Пример 3:
Хајде да имамо листу (количина_поруџбине) која садржи три поруџбине. Наведите ламбда израз да бисте додали 5 сваком редоследу.
Користећи Систем ;Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;
класа ЛамбдаЕкпрессионЕкампле {
статичне јавности празнина Главни ( )
{
// Направите листу количина
Наведите количину_поруџбине = Нова Листа ( ) ;
Низ Количина . Додати ( 5 ) ;
Низ Количина . Додати ( 7 ) ;
Низ Количина . Додати ( 8 ) ;
// Користите ЛамбдаЕкпрессион до 5 за сваки налог.
био резултат = Низ Количина . Изаберите ( инп1 => инп1 + 5 ) ;
за сваки ( био и ин резултат )
{
Конзола . ВритеЛине ( и ) ;
}
}
}
Излаз:
Листа [5,7,8] се трансформише у [10,12,13].
Објашњење:
1. Креирајте листу количина типа Интегер.
2. Прво бирамо наруџбине, а затим додајемо 5 свакој поруџбини. Дакле, користи се оператор 'Селецт'. Израз је инп1 => инп1 + 5.
Пример 4:
Креирајте извор података листе типа догађаја (са три атрибута – Евент_Наме, Евент_Статус и Евент_Будгет) и вратите записе са Евент_Будгет који је већи од 5000.
Користећи Систем ;Користећи Систем.Линк ;
Користећи Систем.Цоллецтионс.Генериц ;
// Креирајте класу под називом - 'Евент_Соурце' са 5 догађаја.
јавности класа Евент_Соурце
{
јавности статичне празнина Главни ( )
{
// Листа догађаја
ИЛист догађаји = Нова Листа ( ) {
Нова Догађај ( ) { Назив догађаја = 'Технички камп' ,Статус_догађаја = 'Планирано' ,Евент_Будгет = 10000 } ,
Нова Догађај ( ) { Назив догађаја = 'Маркетинг камп' ,Статус_догађаја = 'Завршено' ,Евент_Будгет = 5000 } ,
Нова Догађај ( ) { Назив догађаја = 'Друго' ,Статус_догађаја = 'Планирано' ,Евент_Будгет = 1000 } ,
Нова Догађај ( ) { Назив догађаја = 'Политика' ,Статус_догађаја = 'Планирано' ,Евент_Будгет = 13000 } ,
Нова Догађај ( ) { Назив догађаја = 'финансије' ,Статус_догађаја = 'Завршено' ,Евент_Будгет = 20000 } ,
} ;
//Евент_Будгет већи од 5000.
био резултат = догађаји . Где ( инп1 => инп1 . Евент_Будгет > 5000 ) ;
за сваки ( био и ин резултат ) {
Конзола . ВритеЛине ( 'НАМЕ: ' + и . Назив догађаја + ' СТАТУС: ' + и . Евент_Статус + ' БУЏЕТ: ' + и . Евент_Будгет ) ;
}
}
}
јавности класа Догађај {
јавности низ Назив догађаја { добити ; комплет ; }
јавности низ Евент_Статус { добити ; комплет ; }
јавности инт Евент_Будгет { добити ; комплет ; }
}
Излаз:
Постоје три записа на листи „догађаја“ са Евент_Будгет већим од 5000.
Објашњење:
1. Прво креирамо класу „Догађај“ са три атрибута.
2. Затим креирамо листу од пет догађаја.
3. Коришћењем инп1 => инп1.Буџет_догађаја > 5000 ламбда израз, бирамо записе са Евент_Будгет већим од 5000.
Пример 5:
Искористите претходни код и промените ламбда израз. Вратите догађаје са Евент_Наме који се завршава са „Цамп“ и са Евент_Статус који је „Планнед“.
//Ламбда израз – Евент_Наме се завршава са „Цамп“, а Евент_Статус је „Планнед“.био резултат = догађаји . Где ( инп1 => инп1 . Назив догађаја . Завршава са ( 'Камп' ) && инп1 . Евент_Статус == 'Планирано' ) ;
за сваки ( био и ин резултат ) {
Конзола . ВритеЛине ( 'НАМЕ: ' + и . Назив догађаја + ' СТАТУС: ' + и . Евент_Статус + ' БУЏЕТ: ' + и . Евент_Будгет ) ;
}
Излаз:
Постоји само један рекорд који задовољава оба услова.
Објашњење:
Овде наводимо два услова у ламбда изразу. Оператор && (анд) се користи да се два услова поставе као Тачни. Први услов користи методу ЕндсВитх() да провери да ли се стринг завршава датим низом. Други услов користи оператор „Поређење“ (==) да провери да ли су обе вредности једнаке или не.
Закључак
У Ц#, ламбда израз узима изразе/условне изјаве као своје тело без имена. Морамо да наведемо параметре. Затим му се додељују изрази. У основи, они се користе за филтрирање записа из датог извора података, трансформацију елемената и одабир елемената из извора података/секвенце. У овом водичу смо разговарали о пет различитих примера који бирају, филтрирају и трансформишу елементе користећи ламбда израз.