プロジェクトでTroyGoodeのページリストを使用しています。
通常は、IEnumerable、startindex、およびitem countをフィードするだけで、すべて機能します。
ただし、次のように生成したIEnumerableをフィードしようとしています。
private static IEnumerable<Color> GetColors(Query query)
{
IndexSearcher searcher = new IndexSearcher(luceneIndexpath);
Hits hitColl = searcher.Search(query);
//Get all the unique colorId's
List<int> ids = new List<int>();
int id = 0;
for (int i = 0; i < hitColl.Length(); i++)
{
if (Int32.TryParse(hitColl.Doc(i).GetField("id").StringValue(), out id))
ids.Add(id);
}
foreach (int uniqueId in ids.Distinct<int>())
{
yield return ColorService.GetColor(uniqueId);
}
}
--EDIT-- pagedListは機能しますが、ページングされたオブジェクトだけでなく、すべてのMyColorオブジェクトのyieldを要求します。このコース外では、PagedListの使用全体が無効になり、大量の列挙が発生する可能性があります。
--EDIT--
必要だと思うのは、Count()を実装して、ColorService.GetColor()を使用してすべてのオブジェクトを作成し、そのリストをカウントする代わりに、ids.Distinct(int)からカウントを返すようにする方法です。 。