可以';t我在.ascx上使用IEnumerable()

本文关键字:IEnumerable ascx 我在 可以 | 更新日期: 2023-09-27 18:26:59

这是我的代码:

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");
    }
%>  

似乎找不到CCD_ 1方法。它说了一些关于"使用"或"组装"的东西。奇怪的是,有了IList<>,它就完美地工作了。。。为什么?

可以';t我在.ascx上使用IEnumerable()

您需要在*.ascx文件中添加以下行:

<%@ Import namespace="System.Linq" %>

有关详细信息,请参阅此链接。

使用IList<>,您可能正在调用Count属性(不带括号)。您可以将Count()作为静态方法调用:

<%  
    if (m_oHotelsFiltrati == null || Enumerable.Count(m_oHotelsFiltrati)==0) 
    { 
        Response.Write("hello"); 
    } 
%>   

我不知道如何在.ascx文件中获得扩展方法解析。

.Count()是一个扩展方法,它实际上不是IEnumerable的方法。对于.Count()0,编译器需要有一个using才能找到该方法。(根据Anthony Pegram的评论,您将使用import命令作为标记文件。)

它可以很好地处理IList,因为列表实际上有一个属性Count;它不依赖于扩展方法。