Ho letto Programmazione Microsoft LINQ in Microsoft .NET Framework 4 e ora sto capendo la clausola join
in LINQ, ma ho un dubbio o una questione di rispetto per la sua definizione; nel libro è definisce:Differenza tra operatori uguali (LINQ) e == (C#)?
È possibile definire confronti di uguaglianza solo utilizzando una speciale
equals
parola che si comporta diversamente dall'operatore==
, poiché la posizione degli operandi è significativo. Conequals
, la chiave di sinistra consuma la sequenza sorgente esterna e il tasto destro consuma la sequenza sorgente interna. La sequenza dell'origine esterna è compresa solo nella parte sinistra diequals
e la sequenza sorgente interna è compresa solo nella parte destra.
E c'è anche una definizione formale su questo operatore:
join-clause ::= join innerItem in innerSequence on outerKey equals innerKey
Ti prego, qualcuno mi può spiegare il concetto di cui sopra, in altre parole o parafrasando esso?
L'outersource di un join si unisce alla innerkey uguale a innerkey'. In sostanza, quello che stanno dicendo è che non è possibile scrivere quanto segue: 'outersource join unit interna su innerkey uguale a outerkey' – Rob
Quindi ora quali sono le differenze semantiche tra i due in un contesto' IEnumerable'. Sono sicuro che questo potrebbe aiutare con 'IQueryable'. – leppie