【问题标题】:Select the greatest number below a given number using LINQ to Objects?使用 LINQ to Objects 选择给定数字以下的最大数字?
【发布时间】:2011-01-11 13:58:22
【问题描述】:

我有一个简单的数字集合:

Dim listNumbers As List(Of Byte) = New List(Of Byte)({1, 2, 3, 4, 5})

使用 LINQ 如何选择此列表中小于给定数字的最大数字?

例如,如果给定数 = 3,则最大数是 2!

【问题讨论】:

  • Distinct/GroupBy、排序和跳过。 :)
  • @bzlm:请告诉我这是个玩笑。那是O(n log n),而O(n) 是微不足道的(也是最好的)。
  • @Jason 但如果我告诉你这是个玩笑,那玩笑就完蛋了。

标签: .net linq collections


【解决方案1】:

这是 VB.NET:

Dim listNumbers As List(Of Byte) = New List(Of Byte)({1, 2, 3, 4, 5})
Dim max As Integer = listNumbers.Where(Function(n As Integer) n < 3).Max()
Console.WriteLine(max)

实际上,我们正在做的是找到一个候选人列表(那些数字小于 3 的人),然后选择最大的候选人。

如果你需要 C#:

var listNumbers = new List<byte> { 1, 2, 3, 4, 5 };
int max = listNumbers.Where(n => n < 3).Max();
Console.WriteLine(max);

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 2012-07-07
    • 2016-09-11
    • 1970-01-01
    相关资源
    最近更新 更多