2012-05-11 2 views
3

Я делаю петлю:Ограничение количества запросов, полученных в 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 коммитов и забыть о старых.

ответ

3

Что об использовании LINQ-х Take

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

Проверка кода CommitCollection кажется, что это будет на самом деле просто вернуть 100 фиксаций (так что не LookUp все то взять 100).

И вы можете установить необходимый порядок сортировки с помощью свойства Filter.SortBy.

+0

Является ли это хорошим качеством? То есть будет ли он до сих пор брать остальных? – Tower

+1

Я думаю, что все в порядке. Это то, что я имел в виду, «поэтому он не ищет все, а затем берет 100», поэтому он не получит остальных, потому что они реализовали ленивый 'CommitEnumerator', который не просто возвращает все коммиты в большом списке. – nemesv

Смежные вопросы