我有一个数据表 dtFoo,并且想要获取满足特定条件的行数。
编辑:此数据未存储在数据库中,因此不能选择使用 SQL。
过去,我使用了以下两种方法来实现此目的:
Method 1
int numberOfRecords = 0;
DataRow[] rows;
rows = dtFoo.Select("IsActive = 'Y'");
numberOfRecords = rows.Length;
Console.WriteLine("Count: " + numberOfRecords.ToString());
Method 2
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
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)