我不经常使用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"是用于计算数字的方法.
此查询将被大量使用,因此任何小的收益都将是大赢.
我想你不需要匿名类型.试试这个:
var bestPrice = query.Min(x => CalcInterest(amount, term, x.ProductRate.Rate));
Run Code Online (Sandbox Code Playgroud)
编辑:玩弄它我意识到这创造了不同的结果.您的代码返回一个匿名类型.这只返回感兴趣最低的对象.兴趣数据不会保留.
无论哪种方式,Min用来获得最低限度.