限制在LibGit2Sharp中查询的提交数量?

时间:2012-05-11 17:16:45

标签: c# libgit2 libgit2sharp

我正在做一个循环:

using LibGit2Sharp;

var filter = new Filter { Since = repo.Refs };
IEnumerable<Commit> commits = repo.Commits.QueryBy(filter);

foreach (Commit commit in commits)
{
     //Do stuff...
}

它工作正常,但有没有办法限制结果数量?例如,我想获得最新的100次提交,而忘记旧的提交。

1 个答案:

答案 0 :(得分:3)

如何使用LINQ的Take

var commits = repo.Commits.QueryBy(new LibGit2Sharp.CommitFilter{ Since = repo.Refs });
foreach (LibGit2Sharp.Commit commit in commits.Take(100))
{
    //...
}

检查CommitCollection的代码,它似乎真的只返回100次提交(所以它不会全部查找,然后取100)。

您可以使用Filter.SortBy属性设置所需的排序顺序。