Ještě jeden pokus to rovnou číslovat v novém pořadí :
Dim axisdecimals1 As Decimal() = AxisValuesLimited(5, -0.5D)
Dim axisdecimals2 As Decimal() = AxisValuesLimited(2, 4.3D)
Function AxisValuesLimited(ByVal ElementPosition As Integer, ByVal ElementValue As Decimal) As Decimal()
Dim MinValue As Decimal = -2
Dim MaxValue As Decimal = 4.5
Dim lkvp As New List(Of KeyValuePair(Of Integer, Decimal))
If ElementValue > MinValue And ElementValue <= MaxValue Then
lkvp.Add(New KeyValuePair(Of Integer, Decimal)(ElementPosition, ElementValue))
While lkvp(0).Value - 1 > MinValue
lkvp.Insert(0, New KeyValuePair(Of Integer, Decimal)(IIf(lkvp(0).Key > 0, lkvp(0).Key - 1, 6), lkvp(0).Value - 1))
End While
While lkvp(lkvp.Count - 1).Value + 1 <= MaxValue
lkvp.Add(New KeyValuePair(Of Integer, Decimal)(IIf(lkvp(lkvp.Count - 1).Key < 6, lkvp(lkvp.Count - 1).Key + 1, 0), lkvp(lkvp.Count - 1).Value + 1))
End While
End If
Return (From kvp As KeyValuePair(Of Integer, Decimal) In lkvp Order By kvp.Key Select kvp.Value).ToArray
End Function
|