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();
上述代码中的方法
GetAttendanceListOf(q._RollNumber)
会从数据库返回一系列记录,如果传递的“roll-no”没有记录,则返回“null”。如果Linq查询终止,则会生成错误信息:“值不能为空”。是否有一种方法可以处理此错误并使LINQ跳到下一步?
Where(q => q != null)
来过滤掉空值? - Lorenzo DemattéSelect(l => l == null ? Iterable.Empty : l)
的东西。 - Lorenzo DemattéGetAttendanceListOf
函数,以便在给定“roll-no”没有找到任何内容时返回空列表。 - pfyod