Како извести лево спољно спајање – ЛИНК у Ц#

Kako Izvesti Levo Spolno Spajane Link U C



Да би се приказали подударни записи из леве табеле и десне табеле у СКЛ-у, лево спољно спајање је врста операције спајања која се користи. У ЛИНК-у, лево спољно спајање се може извршити коришћењем метода ГроупЈоин() и СелецтМани(), овај чланак ће опширно расправљати о извођењу левог спољног спајања у ЛИНК-у помоћу Ц#.

Како извести лево спољно спајање у ЛИНК-у користећи Ц#

Да бисте извршили лево спољно спајање у ЛИНК-у, можете да користите метод ГроупЈоин() да спојите две секвенце на основу заједничког кључа, а затим користите метод СелецтМани() да поравнате резултат, ево примера:







коришћење система;
усинг Систем.Линк;

разред Програм
{
статичка празнина Главна ( )
{
вар лево = ново [ ] { 1 , 2 , 3 } ;
вар десно = ново [ ] { 2 , 3 , 4 } ;
вар резултат = лево.ГроупЈоин (
јел тако,
л = > л,
р = > р,
( л, р ) = > Нова { Лево = л, Десно = р.ДефаултИфЕмпти ( ) } )
.СелецтМани (
лр = > лр.Ригхт.Селецт (
р = > Нова { Лево = лр.Лево, Десно = р } ) ) ;
за сваки ( вар итем ин резултат )
{
Цонсоле.ВритеЛине ( „{0} {1}“ , ставка.Лево, ставка.Десно ) ;
}
}
}



Овај код изводи лево спољно спајање на два низа лево и десно и штампа резултат на конзоли. Метод ГроупЈоин() врши спајање, а Изабери много() метода се користи за изравнавање резултата. Коначно, резултат се штампа на конзоли помоћу фореацх петље и функције ВритеЛине():







Ево још једног примера који показује употребу извођења изостављених спајања приказивањем одговарајућих имена запослених и њихових релевантних одељења. Сваком запосленом је сваком одељењу додељен број који се затим користи за подударање релевантног одељења са одговарајућим запосленим, ево комплетног кода за њега:

коришћење система;
користећи Систем.Цоллецтионс.Генериц;
усинг Систем.Линк;

намеспаце ИоурНамеспаце
{
разред Програм
{
статичка празнина Главна ( низ [ ] аргс )
{
Листа < Име запосленог > запослени = нова листа < Име запосленог >
{
ново име запосленог { Ид = 1 , Име = 'себе' , ДепартментИд = 1 } ,
ново име запосленог { Ид = 2 , Име = 'Јован' , ДепартментИд = 2 } ,
ново име запосленог { Ид = 3 , Име = 'Кевин' , ДепартментИд = 2 } ,
ново име запосленог { Ид = 4 , Име = 'Боб' , ДепартментИд = 3 }
} ;

Листа < Одељење > одељења = нова Листа < Одељење >
{
ново одељење { Ид = 1 , Име = 'Писање садржаја' } ,
ново одељење { Ид = 2 , Име = 'Маркетинг' } ,
ново одељење { Ид = 3 , Име = 'Инжењеринг' }
} ;

вар куери = фром емплоиеенаме ин запослених
придружити одељење ин одељења
на Емплоиеенаме.ДепартментИд је једнак департмент.Ид у департментГроуп
из одељења ин департментГроуп.ДефаултИфЕмпти ( )
изаберите Нова { ЕмплоиеенамеНаме = Емплоиеенаме.Наме, ДепартментНаме = Департмент?.Наме ?? 'Ниједан' } ;

за сваки ( био је резултат ин упит )
{
Цонсоле.ВритеЛине ( $ „Име запосленог: {ресулт.ЕмплоиеенамеНаме}, одељење: {ресулт.ДепартментНаме}“ ) ;
}
}
}

класа Име запосленог
{
публиц инт Ид { добити; комплет ; }
јавни стринг Име { добити; комплет ; }
публиц инт ДепартментИд { добити; комплет ; }
}

разредно одељење
{
публиц инт Ид { добити; комплет ; }
јавни стринг Име { добити; комплет ; }
}
}



Прво се даје узорак података који садржи име запосленог и назив одељења, а затим се сваком даје одговарајући број. Затим се операција придруживања изводи помоћу команде придруживања и након тога се резултат чува у променљивој под називом упит, затим се фор петља користи за штампање имена и одељења одговарајућих запослених и излаз кода ће бити овакав :

Закључак

Лево спољно спајање је уобичајена операција у СКЛ-у, а такође се може лако извести помоћу ЛИНК-а у Ц#. Користећи методе ГроупЈоин() и СелецтМани(), можете извршити лево спољно спајање на две секвенце на основу заједничког кључа. Иако синтакса за извођење левог спољашњег спајања у ЛИНК-у може бити тешка за разумевање за почетнике, то је моћан и флексибилан језик који омогућава лако извођење сложених упита.