1

我在 DataSet 中的 DataTable 上使用 select 方法来返回 DataRows 数组。这很好用,但是在我的数组上我没有Count 方法?

我不明白为什么,我在另一个应用程序中使用了几乎完全相同的语句,而且我确实有 Count 方法。

我检查了两个应用程序中对 System.Data 的引用,它们是相同的。我还检查了类顶部的 using 语句,它们都设置相同。即使用 System.Data;

这是我的代码:

DataRow[] selectedRecords = myDataset.Tables["Records"].Select();

现在我正在尝试做:

selectedRecords.Count()

但我没有计数方法!?!?!

我正在使用 C# 4.0

提前致谢。

4

5 回答 5

5

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

于 2012-06-15T13:25:41.580 回答
5

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

于 2012-06-15T13:25:37.220 回答
4

您正在寻找

selectedRecords.Length;
于 2012-06-15T13:25:45.367 回答
4
  1. 为了能够.Count()数组,你需要一个using System.Linq;生效
  2. 或者你可以只使用.Length...
于 2012-06-15T13:26:06.837 回答
0

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

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

...

int cnt = GetCountOf(myArray);

或者

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

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

于 2012-06-15T13:45:14.063 回答