在 C# 中,如果您使用 Take(1) 并且列表没有元素,则会出现异常。例如,我有这个片段:
from secRegister in db.Reports.SecRegisters().Where(sr => sr.IssuerID == -1).Take(1);
我输入了一个虚假的 IssuerID -1 以确保没有返回任何元素。如何仅获取第一个元素,同时还检查以确保列表至少有一个元素?
如果您只想返回 IEnumerable 或 IQueryable 中的第一个元素,如果没有这样的元素则抛出异常,请使用 First:
from secRegister in db.Reports.SecRegisters().Where(sr => sr.IssuerID == -1).First()
如果您只想返回 IEnumerable 或 IQueryable 中的第一个元素,如果没有这样的元素则返回 default(T),请使用 FirstOrDefault:
from secRegister in db.Reports.SecRegisters().Where(sr => sr.IssuerID == -1).FirstOrDefault()