简体   繁体   中英

How do I get the last 5 rows of a datatable?

How do I get the last 5 rows of a datatable? I tried something like this:

var Long_bottom = LongSlection.Last(5);

Where LongSlection is a DataRow. But I had an error, any idea?

Not sure what you have got here

var Long_bottom = LongSlection.Last(5);

Assuming you have a DataTable and you want to get the last 5 rows you can do that via

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

Take and Skip return the specific number of elments (parameter is int) while which is not the case with Last you get the last element or you need a predicate for checking conditions or checks within the row.

This SHOULD do it. but it's untested!

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

Or:

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

Edit: Modified to get the last TWO, as per the OPs request.

How about

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

OR

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

Here 5 is the last number of rows to take.

我需要CopyToDataTable()来完成任务:

dt = dt.AsEnumerable().Reverse().Take(5).CopyToDataTable();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM