Mã bên dưới hoạt động trừ khi p.School.SchoolName chỉ ra là rỗng, trong trường hợp này nó dẫn đến NullReferenceException.LINQ where khoản và kết quả đếm bằng ngoại lệ null
if (ExistingUsers.Where(p => p.StudentID == item.StaffID &&
p.School.SchoolName == item.SchoolID).Count() > 0)
{
// Do stuff.
}
ExistingUsers là một danh sách người dùng:
public List<User> ExistingUsers;
Dưới đây là phần có liên quan của stacktrace:
System.NullReferenceException: Đối tượng tham khảo không được đặt để một thể hiện của một đối tượng .
tại System.Linq.Enumerable.WhereListIterator
1.MoveNext()
1 nguồn)
at System.Linq.Enumerable.Count[TSource](IEnumerable
Làm thế nào tôi nên xử lý khoản này ở đâu?
Cảm ơn rất nhiều trước.
Bạn có chắc là SchoolName rỗng và không phải p.School? –
Như một lưu ý chung, thay vì làm IEnumerable.Count (vị ngữ)> 0, sử dụng IEnumerable.Any (vị ngữ). Điều này sẽ chấm dứt thực hiện cho trận đấu đầu tiên được tìm thấy, có khả năng sinh ra một tốc độ lớn lên. – recursive
@Anthony: cảm ơn rất nhiều, tôi nghĩ bạn đúng về p.School là rỗng. – IntrepidDude