具有选择器lambda函数的Enumerable.Max

时间:2012-12-07 16:29:51

标签: vb.net lambda ienumerable

我有一个Column自定义类对象的列表。

Column类具有Position属性。

列表中的每一列都有不同的位置(目前为1,2,3,4)

我想在Max属性上查找最右边的列Position

Enumerable.Max(Of ExcelColumn)(Me.Columns, Function(c) c.Position)

Me.Columns.Max(Function(c) c.Position)

两者总是返回0,不明白为什么。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

例如:

Class Column
    Public Property Position As Int32
End Class

Dim columns As New List(Of Column) From {
    New Column With {.Position = 1}, New Column With {.Position = 2}, New Column With {.Position = 3}, New Column With {.Position = 4}
}
Dim maxColPos As Int32 = columns.Max(Function(c) c.Position)

Console.Write(maxColPos) ' will output 4

顺便说一句,这将返回重复的零,因此maxColPos=0

Dim columns As New List(Of Column) From {
    New Column, New Column, New Column, New Column
}

becaue 0是整数Int32字段的default value