【问题标题】:Need help searching an array... very hard for me需要帮助搜索数组...对我来说很难
【发布时间】:2013-09-14 20:40:57
【问题描述】:

遇到了一个小问题。我不知道如何搜索一个数组,所以我可以从其他 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

【问题讨论】:

  • 您是否有理由使用三个数组而不是使用一个类来表示每辆汽车及其相关值,然后保留这些类的ListDictionary?这是你的作业吗?如果是这样,您至少需要自己努力解决这个问题。您已经提供了数组声明,但根本没有尝试对它们进行任何实际操作。

标签: arrays vb.net visual-studio-2010


【解决方案1】:

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

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"))

【讨论】:

  • 这可以,但我的老师还不想使用它。否则我会的。但这会让以后的事情变得更容易。但是你将如何搜索它来找到你需要的东西。
  • 我知道他们需要教你数组,但这根本不合适。这就是任何具有 OOP 设计的人将如何实现此请求的方式。学校需要挺身而出,采取这种荒谬的方法。
  • 告诉我吧,伙计,我被老师刺了。我的意思是一个真正的 ******* 刺。
  • 但是您将如何搜索数组以找到索引号。一旦找到索引号,我就可以执行所有 if else 语句。
  • 更新了答案。这有帮助吗?
【解决方案2】:
Dim cars as new List(Of Car)({car1,car2,car3})

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2020-08-03
    • 2014-05-20
    • 1970-01-01
    • 2020-05-16
    • 2017-06-07
    • 2020-06-06
    相关资源
    最近更新 更多