2010-08-30 5 views

Répondre

1

Utilisez une combinaison de Skip et Take:

var threads = new List<Thread>(); 

// Fill the list 

threads.Skip(PageSize * (PageIndex - 1)).Take(PageSize); 

Ou, si PageIndex est basé sur zéro (la première page est PageIndex = 0) puis :

threads.Skip(PageSize * PageIndex).Take(PageSize); 
+0

je ne peux pas utiliser un linq ... parce que toute ma logique est altready construire avec les déclarations C# et sql –

+0

@Ragims - Je suis confus. Vous remplissez toujours une liste et vous souhaitez parcourir la liste. Une fois la liste remplie, votre logique et votre SQL ont déjà été lancés, n'est-ce pas? –

0

Faites une recherche Google sur « Paging avec LINQ » et vous obtiendrez une tonne d'idées. LINQ rend vraiment plus facile de faire ce genre de chose.

+0

toute ma logique est déjà avec des instructions SQL dans le code. il est difficile d'utiliser linq maintenant –

+0

Que voulez-vous dire qu'il est difficile d'utiliser LINQ? –

+0

puis-je utiliser un linq si j'ai déjà implémenté la logique avec les instructions C# et sql comme SqlCommand.Text ?? Je n'ai jamais travaillé avec linq. Je ne sais pas si je peux l'utiliser en plus de ma logique déjà implémentée –

3

Comment sur Threads.Skip(PageIndex*PageSize).Take(PageSize)?

(Edit: cela dépend des méthodes d'extension LINQ)

+0

avez-vous une idée de faire cela avec de mauvaises instructions sql et C#? –

+0

Corrigez-moi si je me trompe, mais cela ne vous donnera-t-il pas la page après celle que vous cherchez? La page 1 sautera 1 * 10 et vous donnera les 10 prochaines qui sont les résultats 11 - 20. –

+0

oui vous avez absolument raison, mais je n'utilise pas linq dans mon projet. J'essaie de le faire sans linq. –

Questions connexes