Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

adding index to linq query result

Tags:

c#

asp.net

linq

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.

like image 613
frenchie Avatar asked Feb 15 '11 02:02

frenchie


1 Answers

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
    });
like image 69
Adam Rackis Avatar answered Nov 06 '22 23:11

Adam Rackis