Gewusst wie: behandeln von null-Werten in linq?

recordsList.ListOfRecords = new StudentRecordsBAL()
                                .GetStudentsList()
                                .Select(q => new StudentRecords()
            {
                _RollNumber = q._RollNumber,
                _Class = q._Class,
                _Name = q._Name,
                _Address = q._Address,
                _City = q._City,
                _State = q._State,
                _Subjects = q._Subject,
                _AttendedDays = new AttendanceBAL()
                                    .GetAttendanceListOf(q._RollNumber)
                                    .Where(date => date != null)
                                    .Select(date => 
                                        new DateTime(date._Date.Year, date._Date.Month, date._Date.Day))
                                    .Distinct()
                                    .ToList(),
                _AttendedSubjects = GetAttendedSubjects(q._RollNumber)                                            
        }).ToList(); 

Die Methode, GetAttendanceListOf(q._RollNumber) in obige code wird zurückgeben einer Liste von Datensätzen aus der Datenbank oder "null", wenn keine Datensätze vorhanden für die übergebene "roll-no". Eine linq-Abfrage wird beendet, erzeugen Fehler

"Wert darf nicht null sein".

Gibt es eine Möglichkeit das zu handhaben, Fehler und LINQ-springen Sie zum nächsten Schritt?

  • Vielleicht können Sie einfach Where(q => q != null), heraus zu filtern, die null-Werte?
  • Oder, es ist der "Liste der Dinge, oder "null", können Sie so etwas wie Select(l => l == null ? Iterable.Empty : l)
  • Wenn Sie können, ändern Sie einfach GetAttendanceListOf zurückkehren leere Liste, wenn nichts gefunden wird, die für die gegebene 'roll-in'.
InformationsquelleAutor GG Arora | 2013-04-11
Schreibe einen Kommentar