【问题标题】:VBA – Find object in array with specific propertyVBA – 在具有特定属性的数组中查找对象
【发布时间】:2017-08-09 14:37:31
【问题描述】:

假设我有一个名为Card 的对象,它有几个属性,如colornumbersuit 等。然后我将一堆Cards 存储在一个名为deck 的数组中。有没有办法在deck 中搜索具有特定属性或一组属性的Card

谢谢!

Card的理论代码:

Public color As String
Public suit As String
Public number As Integer

【问题讨论】:

  • 是的。发布您的代码以及到目前为止您尝试过的内容。
  • @coinbird 我在上面发布了Card 的代码。我正在寻找类似deck.findFirstElementThatQualifies(.number = 7) 或类似的功能,但我还没有找到方法。

标签: arrays vba search user-defined-types


【解决方案1】:

搜索数据是编程的重要组成部分。根据您的需要,有无数种搜索方式。要进行基本的线性搜索,您可以对数组的长度进行循环,并检查每个数组元素是否符合您的条件。

由于您还没有尝试过任何事情,或者告诉我们您想对找到(或未找到)的数据做什么,我会给您一些伪代码来帮助您开始:

for(counter integer that increments until it is equal to the length of the array)
{
    if(array at position[counter] == the color/suit/number your looking for)
    {
        //do whatever
    }
    else
    {
        //do something else
    }
}

你可以把它变成一个接受输入并返回数据的函数,这样你就可以用你想找到的任何数据来调用它。

如果这对您没有意义,您需要从研究循环开始。

【讨论】:

  • 谢谢。这应该可行,但我想如果我多次这样做会需要一段时间。
  • @AriLevisohn 你是对的,这绝对需要很长时间。有极其复杂的搜索和排序算法可以帮助您更快地完成此操作,但是您需要先学会使用基本搜索,然后才能使复杂的搜索变得有意义。您还需要特定的搜索目标。如果你能完美地定义你希望你的程序找到什么,以及如何处理这些数据,你就可以加快搜索速度。
猜你喜欢
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 2015-05-18
  • 2016-07-26
  • 2012-11-12
  • 1970-01-01
相关资源
最近更新 更多