我不经常使用LINQ,关于它的事情是有效的方式使用它的效率较低。
我有一个项目列表,我只想对每个项目进行计算并返回最低计算的十进制数字(注释编号,而不是项目)。我有这个LINQ可以工作,但我想知道它是否是在这种情况下可以使用LINQ的最有效方式。
var bestPrice = query.Select(x => new
{
Interest = CalcInterest(amount, term, x.ProductRate.Rate)
})
.OrderBy(x => x.Interest)
.FirstOrDefault();
其中“query”是预先选择的LINQ列表,“CalcInterest”是用于计算数字的方法。
此查询将被大量使用,因此任何小的收益都将是大赢。
答案 0 :(得分:7)
我认为你不需要匿名类型。试试这个:
var bestPrice = query.Min(x => CalcInterest(amount, term, x.ProductRate.Rate));
编辑:玩弄它我意识到这创造了不同的结果。您的代码返回一个匿名类型。这只返回感兴趣最低的对象。兴趣数据不会保留。
无论哪种方式,使用Min
来获得最低限度。