计算和存储具有多个属性的变量的最佳方式,以便于检索

时间:2016-08-09 18:23:22

标签: swift macos

这有点复杂,所以如果我没有解释清楚,请求澄清,我会尽力而为。

我需要遍历大约500个对象(属于自定义类)的数组来计算一些统计信息。因为数组可能非常大,所以我只想对每个数组的分析进行一次循环,所以我真的认为我必须在一次传递中对多个统计数据进行计算。

我需要分析的数据可以是多种状态,A / B和X / Y,对于这两种状态(AX,AY,BX,BY)的每种组合,我有5种不同的属性我想收集(1 -5);他们大多只是检查条件并在计数中加1。我甚至可以将统计数据减少到3并进一步定义其中两个。例如,AX1 AX2 * AX2 ** AX3 * AX3 **等。

按照当前的方式,我正在计划这个,我过滤了多个函数,并且每个进一步的函数我都能够定义另一个状态(使用enums)。

现在,我的问题是,存储这些统计数据的最佳方法是什么?每个统计数据(可以很好地定义为struct)将至少有2个状态/属性(其中2个将有3个)所以我不希望它们只是单独的变量,否则它将是一个实际使用它们的痛苦(另外,还有20个不同的变量)。因此,我认为我需要将它们存储在这样的地方,以便我可以使用不同的enums以编程方式轻松地回忆它们,具体取决于它们将要用于什么。我不认为我的解决方案纯粹是出于这个原因而存在于数组中,但是我无法理解使用字典来达到这种效果的方法。

这根本没有任何意义,还是让我感到非常困惑?随着我解决问题能力的日子一落千丈而且我担心我已经对这个难题做了正确的讨论。

非常感谢任何帮助,

此致

麦克

1 个答案:

答案 0 :(得分:0)

对此的解决方案实际上是字典。通过使用一大堆枚举,我最终基本上通过字典向下过滤,并在每个级别添加另一个属性。唯一的缺点是,当想要在dict中添加新项目时,您必须检查每个级别,以便在添加新项目之前查看已创建的项目。好的一面是,您可以以编程方式选择所需的数据,而无需为每种可能性手动构建函数。