3

私はループをしています:

using LibGit2Sharp;

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

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

正常に動作しますが、結果の数を制限する方法はありますか?たとえば、最新の100個のコミットを取得し、古いコミットは忘れたいと思います。

4

1 に答える 1

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ます。

于 2012-05-11T17:25:48.833 に答える