LINQ, упрощающее выражение - взять, пока сумма взятых не превышает заданное значение

При такой настройке ..

class Product {
   int Cost;
   // other properties unimportant
}

var products = new List<Product> {
    new Product { Cost = 5 },
    new Product { Cost = 10 },
    new Product { Cost = 15 },
    new Product { Cost = 20 }
};

var credit = 15;

Предположим, что список будет отсортирован в указанном порядке. Я хочу в основном перебирать каждый элемент в списке, сохранять суммарное значение стоимости и продолжать получать продукты до тех пор, пока общая стоимость не превышает кредита .

Я могу сделать это с помощью некоторых циклов и прочего, но мне было интересно, есть ли способ сжать это в более простой запрос LINQ.

14
задан Ciel 13 September 2011 в 13:07
поделиться