在 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

提前谢谢。

在 C# 中,数组上没有计数方法

使用Array.Length,而不是Count。数组没有 Count 属性。如果您尝试专门使用 LINQ 的 Count() 方法,则应导入 System.Linq 命名空间

数组使用 Length .但是,如果导入 Linq 命名空间,则存在Count()扩展方法。

你正在寻找

selectedRecords.Length;
  1. 为了能够.Count()阵列,您需要一个有效的using System.Linq;
  2. 或者你可以只使用.Length...

虽然你可以按照其他人的解释使用 Length 属性,但数组也实现了 IList 接口,而 接口又实现了定义 Count 属性的ICollection。但是,它是在数组中显式实现的,这意味着您只能通过接口访问它

public int GetCountOf(ICollection coll) {
    return coll.Count;
}
...
int cnt = GetCountOf(myArray);

int cnt = ((ICollection)myArray).Count;

Count 这里返回数组的长度,而不是数组中包含的项目计数,即数组可以包含所有null条目。