Wenn Joins, die mit SelectMany () ausgedrückt werden, Joins vorziehen, die mit dem Join-Schlüsselwort in Linq @ ausgedrückt werd
it @Linq können innere Verknüpfungen mithilfe des Join-Schlüsselworts oder mithilfe von SelectMany () (d. H. Ein paar von Schlüsselwörtern) mit einem where-Schlüsselwort ausgedrückt werden:
var personsToState = from person in persons
join state in statesOfUS
on person.State equals state.USPS
select new { person, State = state.Name };
foreach (var item in personsToState)
{
System.Diagnostics.Debug.WriteLine(item);
}
// The same query can be expressed with the query operator SelectMany(), which is
// expressed as two from clauses and a single where clause connecting the sequences.
var personsToState2 = from person in persons
from state in statesOfUS
where person.State == state.USPS
select new { person, State = state.Name };
foreach (var item in personsToState2)
{
System.Diagnostics.Debug.WriteLine(item);
}
Meine Frage: Wann ist es sinnvoll, den Join-Stil und wann den Where-Stil zu verwenden? Hat ein Stil Leistungsvorteile gegenüber dem anderen Stil?