创建返回匿名对象的Linq查询时,是否可以让计数器上升?
E.g。
var results = from foo in bar select new { foo.ID, foo.Name, Counter = ???? }
我已经尝试定义一个返回递增数字的方法,但最终结果对所有对象都是相同的。
澄清:我希望结果是
id,name,1
id,name,2
id,name,3
诸如此类
答案 0 :(得分:2)
使用流利语法中的overload of Select
that includes the index(也available for queryables),您可以执行以下操作:
var results = bar.Select((foo, index) => new
{
foo.ID,
foo.Name,
Counter = index + 1
});
请注意,查询语法中不提供此重载。
答案 1 :(得分:1)
var counter = 0;
var results =
from foo in bar
select new { foo.ID, foo.Name, Counter = ++counter };
答案 2 :(得分:0)
这样的事情可能是:
var result= db.bar.Select((foo,i)=>select new {foo.ID, foo.Name, Counter = i+1});
答案 3 :(得分:0)
使用索引的Select()重载:
var results = bar.Select((foo, i) => new { foo.ID, foo.Name, Counter = i + 1});