这是我的代码:
protected IEnumerable<Hotel> Hotels;
protected Hotel Hotel;
Hotels = from Hotel hotel in new Hotels()
select hotel;
Response.Write("RES " + Hotels.Count() + "<br />");
if (Hotels.Count() > 0)
{
Hotel = Hotels.First();
}
Response.Write("RES " + Hotels.Count() + "<br />");
Response.Write("RES " + Hotels.Count() + "<br />");
好的,酒店上有1个项目。但结果是:
RES 1
RES 0
RES 1
为什么?似乎.First()
会与迭代器产生混淆?我如何使用IEnumberable修复它?(不使用其他类型的列表,我需要IEnumberable)。
Hotels
变量?它可以与列表、数组等一起正常工作。顺便说一句,你可以使用FirstOrDefault()
扩展方法来代替那个if条件语句。 - undefined