# adding the middle 20 values of array 0-99

This may seem quiete easy to everyone else but I am struggling to comprehend it. I have to add up the numbers held in the middle 20 indexes of an array 0-99 but I cant work out from what index to what index I should add. Is it from 40-60? or is that 22 values?

index 40 - index 59 is your middle-range ;)

if you are having trouble counting things in lists of consecutive integers that are not starting at one then just imagine subtract the lowest index from all of them and then add 1. Then you will have a lsit of consecutive integers starting from 1 so whatever the top index is will be the count of the thing.

So in the case of 40-60 you can subtract 40 from everything and add one to see that these indexes map to the numbers 1 to 21.

To get your correct answer a simple extension of this can be used. 0-99 is 100 values (just add one to all of them to see this). That means you need to skip 40 values and then take the next 20.

So to work out the ones you skip you want to start at 0 and then take 40 items. You can easily see that after adding one to the list you want your top index to be 40 (so your indexes map to 1-40) which means the actual indexes are 0-39. So 40 then starts your list and in a similar way you can say that if 40 is your first index (40-39=1) then your last index will be 59 (since 59-39 = 20).

Thus the answer is that you are lookign at indexes 40-59.

I hope this not only helps you get the answer here but helps you work out how to do it on your own.

### LINQ to objects performance

I am constructing a LINQ query on a DataSet, it will have a .Where condition, .Distinct and .OrderBy. I was thinking of doing this manually at first, at best I can probably manage this in two loops.