不确定是否使用数组/列表/集合/或其他来存储我的数据

时间:2014-01-31 01:13:01

标签: arrays vb.net list data-structures collections

我对于保存数据的类型感到困惑。我已经对各种课程进行过研究,但我仍然不确定哪种课程最适合我...

我正在编写一个自我测试程序,向用户提供必须回答的问题。有四种类型的问题。我生成一个介于0-49之间的随机数,然后使用该数字来挑选问题。

目前,我将所有问题数据存储在一个多维数组中。这很好看,目前只有50个问题。显示问题后,我将该问题的号码添加到池中,这样就不会被问到两次。

我知道总是检查二手问题池有不必要的处理,考虑到程序可以根据随机数滚动进行多次检查 - SOOO在这里我终于得到了我的问题.... :)

我希望能够轻松地向这个数据列表中添加和删除问题 - 这在数组中是不可能的(无论如何都是有效的删除)。收藏似乎不是我所需要的,所以我认为List会是要走的路......?如果是这样,我如何将我的数据添加到列表并执行我需要的所有功能? (迭代,添加/删除等)。

这是我的数组中一个问题的当前示例。可能会有成千上万的这些:

questionPool1(1, 0) = "What is the expansion of: ADF"
questionPool1(1, 1) = "AUTOMATIC DIRECTION FINDER"
questionPool1(1, 2) = "An automatic direction finder (ADF) is a device for finding the direction to a radio source."
questionPool1(1, 3) = "Abbreviations"
questionPool1(1, 4) = "Medium"
questionPool1(1, 5) = "http://en.wikipedia.org/wiki/Radio_direction_finder"

任何让我走上正轨的建议都会受到极大的赞赏。

1 个答案:

答案 0 :(得分:0)

我同意数据库建议或XML文件。每行都是一个条目,每一列都是问题答案,Wiki等。

至于实际问题,阵列是老派,你提到的替代方案是更好的选择。但他们很少单独工作:

Class QandA
   Public Property Question
   Public Property Answer
   Public Property LongAnswer
   Public Property Abbreviation
   Public Property NumberFour
   Public Property MoreInfo
End Class

Friend _QA As List(Of QandA)

' display:
txtQuestion.Text = _QA(randomIndex).Question

txtWiki.Text = _QA(randomIndex).MoreInfo

注意容器如何为您组织代码?再也不记得0是Q而一个是A - 它是为你拼出的,当你3个月后回到代码时,它仍然有意义。

添加项目:

Dim QA As New QandA
With QA
    .Question = "....."
    .Answer = "....."
   ' etc
End With

_QA.Add(QA)

数据库将提供一个几乎同样好的容器。使用列表,您可以将数据存储在文本文件中,并在循环中加载List,如果您想暂停数据库内容一段时间。您还可以拆分差异:将主列表放在文本文件中,只有在更改时才重新加载,然后序列化List并从中加载,这是正常的过程。取决于它的使用方式,真的。