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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage