我正在使用 .Take() 来获取固定数量的结果。
获取 TotalCountBeforeTake
的最佳方法是什么(即好像我没有使用 .Take())?
我可以在不运行查询两次的情况下获得 TotalCountBeforeTake
吗?
var Results = (from results in db.FindWords(term)
orderby results.word
select results.word).Take(100);
//just to get the total record count
int TotalCountBeforeTake = (from results in db.FindWords(term)
select results.word).Count();
// only showing 100 out of TotalCountBeforeTake results,
// but in order to know the TotalCountBeforeTake I had to run the query twice.
foreach (var result in Results)
{
Console.Write(result.ToString());
}
最佳答案
您想查询两件事 - 项目的总数和项目的子集。所以你需要运行两个查询:
// Define queries
var query1 = from results in db.FindWords(term)
orderby results.word
select results.word;
var query2 = query1.Take(100);
// Run queries
int totalCountBeforeTake = query1.Count();
foreach (var result in query2)
{
Console.Write(result.ToString());
}
关于c# - 如何在 .Take() 之前获得总结果计数 - 但在使用 .Take() 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416873/