Linq:如何查询集合中的项直到总和达到某个值给定以下对象:Name{get;}intQuantity{get;}}使用Linq,如果我得到总和>=给定数量,我将如何查询列表?换句话说,如果我的列表看起来像NameQuantity------------------prod15prod26prod77我想查询List并拉取实例,直到我得到Sum>=8.在本例中,我得到了列表中的前两项。如果我想要总和>=12,我得到全部三个。我知道我可以写一个循环来为我做这件事,但我想幻想一些使用Linq的巧妙的单行代码来实现同样的事情。谢谢这是一个快速的2级车轮。变量总和=0;varquery=col.Where(x=>{vartemp=sum;sum+=x.Quantity;returntemp将500替换为您选择的常量或变量。编辑这是mquandervarsum=0;更有效的解决方案;varquery=col.TakeWhile(x=>{vartemp=sum;sum+=x.Quantity;returntemp您只需创建一个变量来保存总和,然后添加到它,因为每个项目都使用where子句进行测试:以上就是C#学习教程:Linq:Howtoquerytheitemsinthecollectionuntilthesumreachesacertainvalue所有内容分享,如果对大家有用需要了解更多C#学习教程,希望大家多加关注---intsum=0;fromproductinlistwhere(sum+=product.Quantity)本文整理自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
