c# - 获取数据表中满足特定条件的行数

标签 c# datatable count criteria

我有一个数据表 dtFoo,我想计算满足特定条件的行数。

编辑:此数据未存储在数据库中,因此无法使用 SQL。

过去,我使用以下两种方法来完成此操作:

方法一

int numberOfRecords = 0;
DataRow[] rows;

rows = dtFoo.Select("IsActive = 'Y'");
numberOfRecords = rows.Length;

Console.WriteLine("Count: " + numberOfRecords.ToString());

方法二

int numberOfRecords = 0;

foreach (DataRow row in dtFoo.Rows)
{
    if (row["IsActive"].ToString() == "Y")
    {
        numberOfRecords++;
    }
}

Console.WriteLine("Count: " + numberOfRecords.ToString());

我的商店正在努力对一些事情进行标准化,这是一个已经出现的问题。我想知道这些方法中哪种方法在性能方面最好(为什么!),以及哪种方法最常用。

另外,是否有更好的方法来达到预期的效果?

最佳答案

实现此目的的一种简单方法是将原始帖子中的内容合并为一个声明:

int numberOfRecords = dtFoo.Select("IsActive = 'Y'").Length;

实现此目的的另一种方法是使用 Linq 方法:

int numberOfRecords = dtFoo.AsEnumerable().Where(x => x["IsActive"].ToString() == "Y").ToList().Count;

请注意,这需要包含 System.Linq

关于c# - 获取数据表中满足特定条件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252934/

相关文章:

c# - 如何在C#中获取Windows面板控件中的按键事件

c# - DataGridView 在代码中设置行高并禁用手动调整大小

c# - 如何在C#中高效比较两个数据表

javascript - 作为参数传递的最长字符串的长度

c# - 如何获取 OAuth AccessToken (google) 以在 C# 中向 Google Hire 发布工作?

c# - 如何检测 1 个 Entity Framework 对象的变化

javascript - 从数据表中以 json 形式从 Controller 获取数据

c# - 处理我需要从我的方法返回的数据表对象

count - 如何通过密码查询在neo4j中获取不同的标签及其计数?

php - 如何计算 PHP 数组中的非空条目?