我有一个数据表dtFoo,并希望获得满足特定条件的行数。获取数据表中符合特定条件的行数
编辑:此数据不存储在数据库中,因此使用SQL不是一个选项。
在过去,我用以下两种方法来实现:
方法1
int numberOfRecords = 0;
DataRow[] rows;
rows = dtFoo.Select("IsActive = 'Y'");
numberOfRecords = rows.Length;
Console.WriteLine("Count: " + numberOfRecords.ToString());
方法2
int numberOfRecords = 0;
foreach (DataRow row in dtFoo.Rows)
{
if (row["IsActive"].ToString() == "Y")
{
numberOfRecords++;
}
}
Console.WriteLine("Count: " + numberOfRecords.ToString());
我的店是试图在一些事情上标准化,这是一个已经出现的问题。我想知道哪些方法在性能(以及为什么!)方面最好,以及最常用的方法。
另外,是否有更好的方法来达到预期的效果?
优秀的解决方案,你可以让我知道一些来源,我可以看到许多LINQ的例子吗? – 2014-03-29 14:21:27
@Saluce,dtFoo.AsEnumerable()。where(expr)does not need to convert enumerable as we can use dtFoo.Where(expr)is already enumerable – 2015-07-14 11:53:54
@Sunny_Sid这是不正确的。你必须明确地转换为'Enumerable'来使用'Enumerable.Where'。 – saluce 2015-10-08 13:58:22