Ц# ЛИНК Ламбда изрази

C Link Lambda Izrazi



Ламбда израз у Ц# директно узима изразе/условне изјаве као своје тело без имена. Морамо да наведемо параметре, а затим му се додељују изрази. Док радите са језичким интегрисаним упитом (ЛИНК), можда ћете имати захтев да трансформишете податке који су присутни у извору података или конвертујете један извор података у други извор података. У овом водичу ћемо видети како да филтрирамо записе из извора података тако што ћемо навести ламбда израз и изабрати записе из извора података.

Синтакса:

  1. Ламбда израз: (параметри) => израз
  2. Ламбда изјава: { условни исказ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 . Евент_Статус == 'Планирано' ) ;
за сваки ( био и ин резултат ) {
Конзола . ВритеЛине ( 'НАМЕ: ' + и . Назив догађаја + ' СТАТУС: ' + и . Евент_Статус + ' БУЏЕТ: ' + и . Евент_Будгет ) ;
}

Излаз:

Постоји само један рекорд који задовољава оба услова.

Објашњење:

Овде наводимо два услова у ламбда изразу. Оператор && (анд) се користи да се два услова поставе као Тачни. Први услов користи методу ЕндсВитх() да провери да ли се стринг завршава датим низом. Други услов користи оператор „Поређење“ (==) да провери да ли су обе вредности једнаке или не.

Закључак

У Ц#, ламбда израз узима изразе/условне изјаве као своје тело без имена. Морамо да наведемо параметре. Затим му се додељују изрази. У основи, они се користе за филтрирање записа из датог извора података, трансформацију елемената и одабир елемената из извора података/секвенце. У овом водичу смо разговарали о пет различитих примера који бирају, филтрирају и трансформишу елементе користећи ламбда израз.