在 C# 中,数组上没有计数方法
本文关键字:方法 数组 | 更新日期: 2023-09-27 18:37:24
我在数据集中的DataTable上使用select方法来返回DataRows数组。这工作正常,但是在我的数组上我没有 Count 方法??
我不明白为什么,我在另一个应用程序中使用了几乎完全相同的语句,并且我确实有 Count 方法。
我已经检查了两个应用程序中对System.Data的引用,它们是相同的。我还检查了类顶部的 using 语句,它们都设置相同。即使用系统数据;
这是我的代码:
DataRow[] selectedRecords = myDataset.Tables["Records"].Select();
现在我正在尝试做:
selectedRecords.Count()
但我没有计数方法?!?!
我正在使用 C# 4.0
提前谢谢。
使用Array.Length,而不是Count。数组没有 Count 属性。如果您尝试专门使用 LINQ 的 Count() 方法,则应导入 System.Linq 命名空间
数组使用 Length
.但是,如果导入 Linq 命名空间,则存在Count()
扩展方法。
你正在寻找
selectedRecords.Length;
- 为了能够
.Count()
阵列,您需要一个有效的using System.Linq;
- 或者你可以只使用
.Length
...
虽然你可以按照其他人的解释使用 Length
属性,但数组也实现了 IList
接口,而 接口又实现了定义 Count
属性的ICollection
。但是,它是在数组中显式实现的,这意味着您只能通过接口访问它
public int GetCountOf(ICollection coll) {
return coll.Count;
}
...
int cnt = GetCountOf(myArray);
或
int cnt = ((ICollection)myArray).Count;
Count
这里返回数组的长度,而不是数组中包含的项目计数,即数组可以包含所有null
条目。