【问题标题】:Get Max value from Lookup从查找中获取最大值
【发布时间】:2020-10-15 16:15:07
【问题描述】:

我有这样的查询:

ILookup<long ,float> vatPercentLookup = dataItems
  ?.GroupBy(x => x.VATRateId)
  ?.ToLookup(x => x.Key, z => z.Last().Percentage);

所以我想像这样从查找中获得最大值:

var maxPercentage = vatPercentLookup[vatPercentLookup.Max().Key].First();

请注意我无法再访问 dataItems。

我想知道这是不是从查找中获取最大值的最佳方法?

【问题讨论】:

  • 使用FirstOrDefault

标签: c# linq linq-to-objects


【解决方案1】:

在您的情况下查找是错误的类型,看起来您应该使用字典。鉴于此,您可以只取字典的值并获得最大值。但是,当您可以在一个查询中完成所有操作时,您实际上并不需要中间表示。

var maxPercentage = dataItems?
    .GroupBy(x => x.VATRateId, x => x.Percentage)
    .Select(g => g.Last())
    .Max();

【讨论】:

  • 我只想在查找变量中获取最大值,如果我想像您的建议一样从 linq 查询中获取最大值,我必须调用另一个方法并再次从数据库中获取数据。
猜你喜欢
  • 2020-03-29
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多