运算符不能应用于’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
应该只是i
的for
循环:
for (int i = 0; i <= Quantitys.Length - 1; i++)
虽然,正如下面的评论中指出的那样,您也可以使用Quantitys.Count()
,因为数组inheritance自IEnumerable
。 但就个人而言,我个人更喜欢使用标准的Array.Length
属性。
数组有一个Length
属性,而不是Count
属性,尽管它们做同样的事情。 你看到的错误是因为它找到了一个扩展方法Count()
,但是由于你没有用()
调用它而无法使用它。 您可以将您的数组用作IList
以便您可以保留熟悉的Count
属性名称。
此外, i
和ii
会让大多数人感到困惑(包括你自己,从它的外观来看:你包含在你的for
行中)。 编程中的标准是从数学中inheritance而来的,是i
, j
, k
,…用于索引变量名称。 这将有效:
IList Quantitys = Program.RecieptList[i].ItemQuantitys.Split(new char[] {'*'}); for (int j = 0; j <= Quantitys.Count - 1; j++) { }
只需添加括号()即可。 Count()现在也适合我