Linq匿名类型

Joh*_*ara 0 c# linq

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

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

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

其中"query"是预选的LINQ列表,"CalcInterest"是用于计算数字的方法.

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

asi*_*ahi 7

我想你不需要匿名类型.试试这个:

var bestPrice = query.Min(x => CalcInterest(amount, term, x.ProductRate.Rate));
Run Code Online (Sandbox Code Playgroud)

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

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