运算符“<”不能应用于“int”和“方法组”类型的操作数

Posted

技术标签:

【中文标题】运算符“<”不能应用于“int”和“方法组”类型的操作数【英文标题】:Operator '<' cannot be applied to operands of type 'int' and 'method group' 【发布时间】:2016-11-15 04:12:42 【问题描述】:

我正在尝试构建如下视图

对于我这样添加的模型

public class UsrViewModel

    public IEnumerable<User> SysUser  get; set; 


Public class User
            
     public int ID get; set:
     public bool isActive get; set:
     public string user get; set:
     public string location get; set:
     public string usertype get; set:
     public string Type get; set:
     public int UserOrder get; set:
     public bool isVisible get; set:

然后我创建了如下所示的视图,但在这里我收到了以下错误

 @model ProjectName.ViewModels.UsrViewModel
    @
    
    <div class="content-page">

        <div class="content">
            <div class="container">
                <div class="row">
                    <div class="col-xs-12">
                        @using (html.BeginForm("Users", "Sample", FormMethod.Post))
                        
                                    <table class="table table-striped table-bordered" id="SysUser ">
                                        <tr>
                                           ...
                                        </tr>
                                        @if (Model != null)
                                        
                                        for (int i = 0; i < Model.SysUser.Count; i++)
                                            
                                            <tr>
                                                <td>
                                                    [i]
                                                </td>
                                                ....

                                            </tr>
                                            
                                        

                                    </table>

                                </div>
                                <div class="col-sm-offset-1 col-sm-11">
                                    <button type="submit" class="btn btn-purple waves-effect waves-light btn-wd-130">Save</button>
                                    <button type="submit" class="btn btn-default waves-effect waves-light btn-wd-130">Clear</button>
                                </div>                 
                        
                    </div>
                    <!-- end row -->

                </div> 
            </div>

        </div>
    </div>

运算符“

在这一行for (int i = 0; i &lt; Model.SysUser.Count; i++)

【问题讨论】:

您视图中的模型是SysUser,但您显示的模型是UsrViewModel(显示正确的代码)。 DeviceSensors 是什么属性? 抱歉有错误的细节,我想现在可以了 重新编辑,假设模型真的是@model UsrViewModel,那么因为SysUserIEnumerable&lt;User&gt;(它必须是IList&lt;User&gt; Count 中没有 Count 属性 IEnumerable 但有一个方法 Count() 所以你可以尝试使用它 - 或者按照斯蒂芬的建议将其转换为列表 所以你提议将IEnumerable&lt;'reUser&gt; SysUser 更改为IList&lt;User&gt; SysUser 【参考方案1】:

尝试:

  for (int i = 0; i < Model.SysUser.Count(); i++)

【讨论】:

不太可能工作,因为 OP 有一个用于编辑的表单,因此该属性需要为 IList&lt;T&gt; 才能在集合中生成表单控件。 我不明白。 IEnumerable 有 Count() 方法。并且他在 for 循环条件中使用 Model.SysUser.Count,因此出现错误:“运算符' 我是说在 OP 的情况下,这不是解决方案 - 它会使错误消失,但是当提交表单时代码将永远无法绑定到模型(它不会解决任何问题)【参考方案2】:

您是否尝试过使用 ForEach() 而不是 For()?像这样:

ForEach(var thisUser from Model.SysUser)
<tr>
      <td>
          @thisUser.ID
      </td>
      ....

</tr>


【讨论】:

以上是关于运算符“<”不能应用于“int”和“方法组”类型的操作数的主要内容,如果未能解决你的问题,请参考以下文章

运算符 '!=' 不能应用于类型为 'Task' 和 'int' 的操作数

运算符'> ='不能应用于'string'和'int'类型的操作数[重复]

二元运算符 % 不能应用于 UInt32 和 int 类型的操作数

NSError 代码检查:二元运算符“==”不能应用于两个 Int 操作数

运算符 += 应用于 std::valarray<int*>

Excel [Expression.Error] 我们不能将运算符 < 应用于文本和日期类型