2012-06-05 4 views
2

Comment puis-je obtenir les 5 dernières lignes d'un datatable? J'ai essayé quelque chose comme ceci:Comment puis-je obtenir les 5 dernières lignes d'un datatable?

var Long_bottom = LongSlection.Last(5); 

Où LongSlection est un DataRow. Mais j'ai eu une erreur, une idée?

+0

Quelle est votre erreur? – Mixxiphoid

+0

si 'LongSlection' est un' DataRow', comment voulez-vous qu'il vous renvoie 2 lignes? Je pense que vous devez ajouter un peu plus de détails à la question – V4Vendetta

+0

si vous faites une var Long_top = LongSlection.Take (15); vous avez les 15 premières lignes des datarows, je ne vois pas pourquoi cela ne peut pas fonctionner pour le fond –

Répondre

5

Je ne sais pas ce que vous avez ici

var = Long_bottom LongSlection.Last (5);

En supposant que vous avez un DataTable et que vous voulez obtenir les 5 dernières lignes, vous pouvez le faire via

datatable1.AsEnumerable().Reverse().Take(5); 

Take et Skip retourner le nombre spécifique de elments (paramètre est int) alors qui n'est pas le cas avec Last vous obtenez le dernier élément ou vous avez besoin d'un prédicat pour vérifier les conditions ou les contrôles dans la rangée.

0

Cela DEVRAIT le faire. mais ce n'est pas testé!

IEnumerable<DataRow> lastRows = table.AsEnumerable().Skip(table.Rows.Count - 2).ToList(); 

Ou:

table.AsEnumerable().Reverse().Take(2); 

Edit: Modifié pour obtenir la dernière DEUX, selon la demande de postes d'observation.

+0

Whtz avec le nombre magique 10? – V4Vendetta

0

Que diriez-vous

Datarow[] dr = dt.Rows.Cast<DataRow>().Skip(dt.Rows.Count - 5).ToArray(); 

OU

dt.Rows.Cast<DataRow>().Reverse().Take(5); 

ici 5 est le dernier nombre de lignes à prendre.

Questions connexes