How can the query below be modified to include a column for row number (ie: one-based index of results)?
var myResult = from currRow in someTable where currRow.someCategory == someCategoryValue orderby currRow.createdDate descending select currRow;
EDIT1: I'm looking for the results to be {idx, col1, col2...col-n}
not {idx, row}
.
EDIT2: The row number should correspond to result rows not the table rows.
EDIT3: I DataBind
these results to a GridView
. My goal was to add a row number column to the GridView
. Perhaps a different approach would be better.
LINQ queries are based on generic types, which were introduced in version 2.0 of . NET Framework. You do not need an in-depth knowledge of generics before you can start writing queries.
Use the method-syntax where Enumerable.Select
has an overload with the index:
var myResult = someTable.Select((r, i) => new { Row = r, Index = i }) .Where(x => x.Row.someCategory == someCategoryValue) .OrderByDescending(x => x.Row.createdDate);
Note that this approach presumes that you want the original index of the row in the table and not in the filtered result since i select the index before i filter with Where
.
EDIT: I'm looking for the results to be {idx, col1, col2...col-n} not {idx, row}. The row number should correspond to result rows not the table rows.
Then select the anonymous type with all columns you need:
var myResult = someTable.Where(r => r.someCategory == someCategoryValue) .OrderByDescending(r => r.createdDate) .Select((r, i) => new { idx = i, col1 = r.col1, col2 = r.col2, ...col-n = r.ColN });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With