【发布时间】:2019-07-14 11:46:00
【问题描述】:
我有一个数组s() 如下所示,我想根据值s().Mean 对数组进行排序,从最高到最低,反之亦然。我对 VB.NET 很陌生,所以对任何解决方案都很感兴趣。我将所有平均值复制到一个简单的数组中并尝试执行Array.Sort(s,Compare),但收到ICompare 错误消息,所以我现在有点(很多)迷失了下一步该做什么。
Public Class Form1
Public Structure Values
Public DateTime As String
Public Value As Double
End Structure
Public Structure QDAS
Public Index As Integer
Public ID As String
Public Description As String
Public PartType As String
Public Operation As String
Public Status As Boolean
Public Mean As Double
Public Nominal As Double
Public USL As Double
Public LSL As Double
Public Deviation As Double
Public ErrorAfterTol As Double
Public Max As Double
Public Min As Double
Public Range As Double
Public TotalTolerance As Double
Public PercentOfTol As Double
Public Repeatability As Double
Public Units As String
Public Values() As Values
End Structure
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim s(5) As QDAS
Dim i
For i = 0 To 5
s(i).Description = "F" & i
ReDim Preserve s(i).Values(5)
For j = 0 To 5
s(i).Values(j).Value = Rnd()
Next
For j = 0 To UBound(s(i).Values)
s(i).Mean = s(i).Mean + s(i).Values(j).Value
Next
s(i).Mean = s(i).Mean / (UBound(s(i).Values) + 1)
Next
MsgBox("Done")
Dim Compare() As Double = Nothing
ReDim Compare(UBound(s))
For i = 0 To UBound(s)
Compare(i) = s(i).Mean
Next
Array.Sort(s, Compare)
End Sub
End Class
【问题讨论】: