这是我的代码:
protected IEnumerable<MyObject> CategoriesHotelsFiltrati;
CategoriesHotelsFiltrati.Union(CategoriesHotels.Where(o => o.Comune != null && CategoriesLocalitaSelezionate.Contains(o.Comune.UniqueID)));
现在,在.asxc上,如果我尝试这样做:
<%
if (m_oHotelsFiltrati == null || m_oHotelsFiltrati.Count()==0)
{
Response.Write("hello");
}
%>
似乎没有找到.Count()
方法。它说有关“使用”或“组装”的事情。很奇怪,IList<>
这完全有效......为什么?
答案 0 :(得分:5)
答案 1 :(得分:2)
.Count()
是一种扩展方法,它实际上不是IEnumerable
的方法。对于编译器,您需要using
System.Linq
来查找方法。 (根据Anthony Pegram的评论,您可以使用import
命令获取标记文件。)
它适用于IList,因为列表实际上有一个属性Count
;它不依赖于扩展方法。
答案 2 :(得分:2)
使用IList<>
,您可能正在调用Count
属性(没有括号)。您可以将Count()
称为静态方法:
<%
if (m_oHotelsFiltrati == null || Enumerable.Count(m_oHotelsFiltrati)==0)
{
Response.Write("hello");
}
%>
我不确定如何在.ascx文件中获得扩展方法解析。