创建返回匿名对象的 Linq 查询时,是否可以使计数器上升?
例如
var results = from foo in bar select new { foo.ID, foo.Name, Counter = ???? }
我已经尝试定义一个返回递增数字的方法,但所有对象的最终结果都是相同的。
澄清:我希望结果是
id, 名字, 1
id, 名字, 2
id, 名字, 3
等等
创建返回匿名对象的 Linq 查询时,是否可以使计数器上升?
例如
var results = from foo in bar select new { foo.ID, foo.Name, Counter = ???? }
我已经尝试定义一个返回递增数字的方法,但所有对象的最终结果都是相同的。
澄清:我希望结果是
id, 名字, 1
id, 名字, 2
id, 名字, 3
等等
使用fluent-syntax中包含索引(也可用于 queryables )的重载Select
,您可以执行以下操作:
var results = bar.Select((foo, index) => new
{
foo.ID,
foo.Name,
Counter = index + 1
});
请注意,此重载在查询语法中不可用。
var counter = 0;
var results =
from foo in bar
select new { foo.ID, foo.Name, Counter = ++counter };
可能是这样的:
var result= db.bar.Select((foo,i)=>select new {foo.ID, foo.Name, Counter = i+1});
使用索引 Select() 重载:
var results = bar.Select((foo, i) => new { foo.ID, foo.Name, Counter = i + 1});