Ich kam in den folgenden Code:Warum explodiert eine Nullreferenz in OrderBy nicht?
foreach(var member in manager.Memberships.Where(mem => someBooleanExpression)
.OrderBy(mem => mem.Person.LName).ToList()) {
if(member.Person == null)
continue;
addListItemToAllDropDowns(member.Person.FullName, member.PersonID.ToString());
}
Eigentlich habe ich die "fortzusetzen;" Linie mich, um zu illustrieren, was vor sich ging. Es trifft tatsächlich diese Linie. Ich verstehe nicht, wie das möglich ist.
Um in die Schleife zu gelangen, hätte es die Sammlung basierend auf member.Person bestellen müssen. Aber member.Person ist null für mindestens ein Element, also wie ist es möglich, dass es nicht explodiert ist? Ich habe .ToList() an das Ende der OrderBy hinzugefügt, um die Möglichkeit einer verzögerten Verwirrung zu beseitigen, aber das konnte nicht das Problem gewesen sein, da es die OrderBy vor dem Einstieg in die Schleife hätte realisieren müssen.
Mir ist keine spezielle Ausnahmebehandlung in OrderBy bekannt. Was vermisse ich?
Es muss so funktionieren oder Sie könnten nicht mit den meisten SQL-Daten arbeiten. Jede Nullwert-Spalte würde unbrauchbar werden. –