我对于保存数据的类型感到困惑。我已经对各种课程进行过研究,但我仍然不确定哪种课程最适合我...
我正在编写一个自我测试程序,向用户提供必须回答的问题。有四种类型的问题。我生成一个介于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"
任何让我走上正轨的建议都会受到极大的赞赏。
答案 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并从中加载,这是正常的过程。取决于它的使用方式,真的。