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

本文关键字:int 操作数 方法组 方法 应用于 不能 类型 运算符 | 更新日期: 2023-09-27 18:36:37

我试图获取这个字符串数组中的元素数量,但它不会让我从Count中拿走 1 个。

string [] Quantitys = Program.RecieptList[i].ItemQuantitys.Split(new char[] {'*'});
for (int ii = 0; i <= Quantitys.Count - 1; ii++)
{
}

我收到一条错误消息,指出

运算符"-"不能应用于类型为"方法组"和"Int"的操作数。

正确的方法是什么?

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

对于

数组,应该LengthCount

string [] Quantitys = Program.RecieptList[i].ItemQuantitys.Split(new char[] {'*'});
for (int ii = 0; i <= Quantitys.Length - 1; ii++)
{
}

有关 MSDN 的详细信息:Array.Length

此外,除非是有意为之,否则您的ii应该只i在您的for循环中:

for (int i = 0; i <= Quantitys.Length - 1; i++)

虽然,正如下面的评论所指出的,您也可以使用 Quantitys.Count() ,因为数组继承自IEnumerable<T> .不过,就个人而言,对于一维数组,我更喜欢使用标准的 Array.Length 属性。

只需添加方括号 ()。Count() 现在也对我有用

数组

具有Length属性,而不是Count属性,尽管它们执行相同的操作。您看到的错误是因为有一个扩展方法Count()它正在查找,但不能完全使用,因为您没有使用 () 调用它。您可以改用数组作为IList<T>,以便可以保留熟悉的Count属性名称。

此外,iii会让大多数人感到困惑(包括你自己,从外观上看:你把两者都包含在你的for行中)。从数学继承而来的编程标准是ijk、...对于索引变量名称。这将起作用:

IList<string> Quantitys = Program.RecieptList[i].ItemQuantitys.Split(new char[] {'*'});
for (int j = 0; j <= Quantitys.Count - 1; j++)
{
}
对我来说,

我添加了列表然后它的工作

以前:

@model warehouse.Models.DEPARTMENTS

@model List<warehouse.Models.DEPARTMENTS>`

然后 for 循环:

  @for (int i = 0; i < Model.Count(); i++)
        {
            <tr>
            </tr>
        }