假设我有一个班级
Public Class Foo
Property fooProp1 as Single
Property fooProp2 as Single
Property fooProp3 as Single
End Class
在Collection(Of Foo)
中查找属性的绝对最大值(包含正值或负值)我可以这样做:
Collection.Max(Function(x As foo) Math.Abs(x.fooProp1))
并返回更大的绝对值WITHOUT sign。
问题是如何获取数字WITH符号?
提前致谢。 RG
答案 0 :(得分:0)
Math.Abs将始终返回无符号值(绝对的实际含义)。
获取您只需阅读它所需的属性值。
要获得MAX或MIN,您必须比较值,如下所示:
dim x as integer = foo.property
dim y as integer = last_foo_property (or anything else)
Minimum = Math.Min(x,y)
Maximum = Math.Max(x,y)
但是,如果试图获取集合的较低和较高值,您可以使用:
MaxValue = Collection.Find(Collection, Function(Z) (Z > BiggerValue))
MinValue = Collection.Find(Collection, Function(Z) (Z < LowerValue))
在调用之前获取这些值。
另一种方法是进行SORT并获取第一个和最后一个值......
答案 1 :(得分:0)
Collection.Select(Function(x) a.fooProp1).Aggregate(Function(a, b)
If(Math.Abs(a) > Math.Abs(b), a, b))