C#LINQ:获取最高价商品
|
我有一个对象列表:
class MyObj
{
public String Title { get; set; }
public Decimal Price { get; set; }
public String OtherData { get; set; }
}
var list = new List<MyObj> {
new MyObj { Title = \"AAA\", Price = 20, OtherData = \"Z1\" },
new MyObj { Title = \"BBB\", Price = 20, OtherData = \"Z2\" },
new MyObj { Title = \"AAA\", Price = 30, OtherData = \"Z5\" },
new MyObj { Title = \"BBB\", Price = 10, OtherData = \"Z10\" },
new MyObj { Title = \"CCC\", Price = 99, OtherData = \"ZZ\" }
};
获得具有唯一标题和MAX(Price)的列表的最佳方法是什么。
结果列表必须为:
var ret = new List<MyObj> {
new MyObj { Title = \"BBB\", Price = 20, OtherData = \"Z2\" },
new MyObj { Title = \"AAA\", Price = 30, OtherData = \"Z5\" },
new MyObj { Title = \"CCC\", Price = 99, OtherData = \"ZZ\" }
};
没有找到相关结果
已邀请:
4 个回复
秃拳割
如果您需要LINQ to SQL(不能使用语句lambdas),则可以使用:
注意,在LINQ to Objects中效率不如iteration4ѭ的每次迭代中那样,它将重新计算最高价格。 如果您希望能够退回多个具有给定名称的商品(如果它们的价格相同),请调整“ 5”部分。 在LINQ to Objects中,您还可以使用MoreLINQ的
方法:
倪蕊悲潍
(如果您需要结果是results9ѭ而不是
序列,则只需在结尾处标记
调用即可。)
淘圃跺枯替
这应该做到。
疼嘶桐
应该
我喜欢针对每组最多n个问题的Richard解决方案。
但是需要稍作修改