我有一个数据表 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/