【问题标题】:Can't I use IEnumerable() on .ascx?我不能在 .ascx 上使用 IEnumerable() 吗?
【发布时间】:2012-03-07 16:20:10
【问题描述】:

这是我的代码:

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&lt;&gt; 可以完美运行...为什么?

【问题讨论】:

    标签: c# .net ienumerable ilist


    【解决方案1】:

    您需要将以下行添加到您的*.ascx 文件中:

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

    更多详情请见this link

    【讨论】:

      【解决方案2】:

      使用IList&lt;&gt;,您可能正在调用Count 属性(不带括号)。你可以调用Count()作为静态方法:

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

      我不确定如何在 .ascx 文件中获取扩展方法解析。

      【讨论】:

        【解决方案3】:

        .Count() 是扩展方法,它实际上不是IEnumerable 的方法。您需要为System.Linq 提供using,以便编译器找到该方法。 (根据 Anthony Pegram 的评论,您可以对标记文件使用 import 命令。)

        它适用于 IList,因为 list 实际上有一个属性 Count;它不依赖于扩展方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-04
          • 2011-02-23
          • 2014-11-11
          相关资源
          最近更新 更多