2010-05-19 2 views
3

Предположим, у меня есть список или массив элементов, и я хочу подытожить подмножество элементов в списке. (в моем случае это всегда будет последовательное подмножество).Linqify: Объединение подмножества списка

Вот старинке:

 

int sum = 0; 
for(int i = startIndex; i <= stopIndex; i++) 
    sum += myList[i].TheValue; 
return sum; 
 

Какой самый лучший способ linqify этот код?

ответ

6
myList.Skip(startIndex).Take(stopIndex - startIndex + 1).Sum(x => x.TheValue); 

Если бы я делал такие вещи много, я бы определить помощник TakeRange, которая закрывала Skip и Take так, что я не совсем по одному его.

+0

Вы пропустили a. Выберите (x => x.TheValue) перед суммированием. – spender

+0

Мой плохой. Починил это. – mquander

+0

ах. ОК. Более кратким. Хорошо! – spender

Смежные вопросы