运算符不能应用于’Method Group’和’int’类型的操作数

我正在尝试获取此字符串数组中的元素数量,但它不会让我从Count取出1。

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

我收到一条错误消息说明

运算符’ – ‘不能应用于’Method Group’和’Int’类型的操作数。

什么是正确的方法呢?

对于数组,它应该是Length not Count

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

有关MSDN的更多信息: Array.Length

此外,除非是故意的,否则你的ii应该只是ifor循环:

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

虽然,正如下面的评论中指出的那样,您也可以使用Quantitys.Count() ,因为数组inheritance自IEnumerable 。 但就个人而言,我个人更喜欢使用标准的Array.Length属性。

数组有一个Length属性,而不是Count属性,尽管它们做同样的事情。 你看到的错误是因为它找到了一个扩展方法Count() ,但是由于你没有用()调用它而无法使用它。 您可以将您的数组用作IList以便您可以保留熟悉的Count属性名称。

此外, iii会让大多数人感到困惑(包括你自己,从它的外观来看:你包含在你的for行中)。 编程中的标准是从数学中inheritance而来的,是ijk ,…用于索引变量名称。 这将有效:

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

只需添加括号()即可。 Count()现在也适合我