0

遇到了一个小问题。我不知道如何搜索一个数组,所以我可以从其他 2 个数组中提取相同的数组编号。我知道如何测试很多东西,这样就不会成为问题。

该项目的最终结果是用户将放置他们愿意为制造汽车支付的金额,页面将显示数据。但是我不知道如何搜索carArray()以找到索引号并使用该索引号来查找其他内容。我确实找到了一些之前(有点)这样做的东西,但我不知道如何为我修改它以将该索引号保留为 int 并使用它来搜索和显示其他数组。

我将在以后的项目中需要它。

Public Class paymentPage

    Private Sub car_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles car.TextChanged

    End Sub

    Private Sub price_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles price.TextChanged

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim carArray() As String = {"Ford", "Chevy", "Mazda"}
        Dim sellAmount() As Decimal = {32700, 35625, 24780}
        Dim leaseAmount() As Decimal = {425, 505, 385}

    End Sub
End Class
4

2 回答 2

2

为什么不把它作为一个类对象呢?以后更容易重复使用。

Public Class Car
  Public Property Make As String
  Public Property Value As Double
  Public Property Lease As Double
End Class

然后收集它们:

Private cars As New List(Of Car)
cars.Add(New Car With {.Make = "Ford", .Value = 32700, .Lease = 425})
cars.Add(New Car With {.Make = "Chevy", .Value = 35625, .Lease = 505})
cars.Add(New Car With {.Make = "Mazda", .Value = 24780, .Lease = 385})

对于您的要求:

Private Function getIndexByName(make As string) As Integer
 Dim result As Integer = -1
 For i As Integer = 0 To carArray.Length -1
  If carArray(i) = make Then
   result = i
   Exit for
  End If
 Next
 Return Result
End Function

用法:

Dim mazdalease = leaseAmt(getIndexByName("Mazda"))
于 2013-09-14T20:50:51.753 回答
0
Dim cars as new List(Of Car)({car1,car2,car3})

Dim indexOfCar2 = Array.IndexOf(cars.ToArray(),car2)

由于它很容易转换为数组,因此您可以使用内置函数。请记住,您需要覆盖 GetHash 和 Equals 才能使其正常工作。

于 2013-09-15T00:26:29.077 回答