gpt4 book ai didi

c# - LINQ:添加 RowNumber 列

转载 作者:IT王子 更新时间:2023-10-29 04:29:30 26 4
gpt4 key购买 nike

如何修改下面的查询以包含行号列(即:基于一的结果索引)?

var myResult = from currRow in someTable
where currRow.someCategory == someCategoryValue
orderby currRow.createdDate descending
select currRow;

EDIT1:我正在寻找的结果是 {idx, col1, col2...col-n} 而不是 {idx, row}

EDIT2:行号应对应于结果行而不是表行。

EDIT3:我将这些结果DataBindGridView。我的目标是向 GridView 添加一个行号列。也许不同的方法会更好。

最佳答案

使用方法语法 where Enumerable.Select索引重载:

var myResult = someTable.Select((r, i) => new { Row = r, Index = i })
.Where(x => x.Row.someCategory == someCategoryValue)
.OrderByDescending(x => x.Row.createdDate);

请注意,此方法假定您需要表中行的原始索引,而不是过滤结果中的原始索引,因为我在使用 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.

然后选择你需要的所有列的匿名类型:

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 });

关于c# - LINQ:添加 RowNumber 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com