Linq匿名类型

时间:2016-10-14 08:12:12

标签: c# linq

我不经常使用LINQ,关于它的事情是有效的方式使用它的效率较低。

我有一个项目列表,我只想对每个项目进行计算并返回最低计算的十进制数字(注释编号,而不是项目)。我有这个LINQ可以工作,但我想知道它是否是在这种情况下可以使用LINQ的最有效方式。

var bestPrice = query.Select(x => new
{
    Interest = CalcInterest(amount, term, x.ProductRate.Rate)
})
.OrderBy(x => x.Interest)
.FirstOrDefault();

其中“query”是预先选择的LINQ列表,“CalcInterest”是用于计算数字的方法。

此查询将被大量使用,因此任何小的收益都将是大赢。

1 个答案:

答案 0 :(得分:7)

我认为你不需要匿名类型。试试这个:

var bestPrice = query.Min(x => CalcInterest(amount, term, x.ProductRate.Rate));

编辑:玩弄它我意识到这创造了不同的结果。您的代码返回一个匿名类型。这只返回感兴趣最低的对象。兴趣数据不会保留。

无论哪种方式,使用Min来获得最低限度。