Aşağıdaki nesne verildiğinde:Linq: Bir koleksiyondan toplamı belirli bir değere ulaşıncaya kadar nasıl sorgulanır?
public class Product {
string Name {get;}
int Quantity {get;}
}
, Linq kullanarak, bir List<Product>
değerini belirli bir miktar >=
alana kadar nasıl sorgularım? Başka bir deyişle, listem
Name Quantity
-----------------
prod1 5
prod2 6
prod7 7
gibi görünüyorsa, listeyi sorgulamak ve bir Sum >=8
elde edene kadar örnekleri almak istiyorum. Bu durumda listedeki ilk iki öğeyi alırdım. Eğer >= 12
toplamı isteseydim, her üçünü alırdım.
Bunu benim için bir döngü yazabileceğimi biliyorum, ama aynı şeyi elde etmek için Linq kullanarak biraz kaygan bir astar olduğunu hayal ediyordum.
Teşekkürler
Bu çok tatlı .. – jlembke
Bunun yerine aynı şeyi yapmak daha verimli olurdu. Burada(), .TakeWhile() işlevini kullanın ve başlangıçtaki toplamın 500'den büyük olup olmadığını kontrol edin (sonunda çok az öğe alırsınız.) Ardından 500 bariyer olduğunda yineleme dururdu. kırık. – mquander
@mquander, her iki güzel nokta da – JaredPar