Reputation: 51927
I have a linq query that returns a list of MyObject. I'd like to add a property to MyObject called TheIndex and that contains the ordinate of the item in the sequence.
In other words, I need something like this:
var TheResult = from d in MyDataContext
where.....
select new MyObject
{
Property1 = d.whatever,
TheIndex = ?
}
The query returns a list of MyObject and I'd like each item in the list to contain the index as one of its property.
Thanks.
Upvotes: 8
Views: 5673
Reputation: 83358
Once you get away from the query syntax, you'll find a Select overload that gives you the index you're looking for.
var result = MyDataContext
.Where(d => d.Prop == "A")
.AsEnumerable()
.Select((d, i) =>
new MyObject() {
Property1 = d.whatever,
TheIndex = i
});
Upvotes: 17