我正在尝试获取此字符串数组中的元素数量,但它不会让我从Count
获取1。
string [] Quantitys = Program.RecieptList[i].ItemQuantitys.Split(new char[] {'*'});
for (int ii = 0; i <= Quantitys.Count - 1; ii++)
{
}
我收到一条错误消息,说明
运算符' - '不能应用于'方法组'和'Int'类型的操作数。
这样做的正确方法是什么?
答案 0 :(得分:17)
对于数组,它应该是Length
而不是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()
,因为数组继承自IEnumerable<T>
。但就个人而言,我个人更喜欢使用标准的Array.Length
属性。
答案 1 :(得分:4)
数组具有Length
属性,而不是Count
属性,尽管它们执行相同的操作。您看到的错误是因为它找到了一个扩展方法Count()
,但由于您未使用()
调用它,因此无法使用。您可以将数组用作IList<T>
,以便保留熟悉的Count
属性名称。
此外,i
和ii
会让大多数人感到困惑(包括您自己,从它的外观来看:您在for
行中都包含了这两者)。编程的标准是从数学中继承的,i
,j
,k
,...用于索引变量名称。这将有效:
IList<string> Quantitys = Program.RecieptList[i].ItemQuantitys.Split(new char[] {'*'});
for (int j = 0; j <= Quantitys.Count - 1; j++)
{
}
答案 2 :(得分:0)
只需添加方括号()。 Count()现在也对我有用