【问题标题】:Linq Anonymous TypeLinq 匿名类型
【发布时间】:2016-10-14 16:52:39
【问题描述】:

我不经常使用 LINQ,它的问题是有一些有效的方法可以使用它,但效率较低。

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

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

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

此查询将被大量使用,因此任何小收获都会是大胜利。

【问题讨论】:

  • 在代码审查伙伴中发布这个:)
  • 如果您对更有效的方式感兴趣,您也需要提供query。所需结果的类型是什么? Interest 是什么?如果只包含一个十进制数,为什么还需要匿名类型?
  • @TimSchmelter - 查询的内容无关紧要,它只是一个包含 Product Rate 字段的项目列表。听起来我不需要匿名类型 - 我参考我的开场白和缺乏 LINQ 经验。
  • 出于兴趣,是什么让您认为此查询使用匿名类型?
  • @Gusdor - 缺乏经验 :)

标签: c# linq


【解决方案1】:

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

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

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

无论哪种方式,使用Min 获得最小值。

【讨论】:

  • 感谢您的回复 - 这似乎正是我所需要的。
猜你喜欢
  • 2011-11-07
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多