沒有從XML中獲取隨機行的直接方式。依靠行號是危險的,因爲如果XML的格式將被變更情況:從
<lexeme><grapheme>Aalesund</grapheme> <phoneme>'A:lI2s,Vnd</phoneme></lexeme>
到:
<lexeme>
<grapheme>Aalesund</grapheme>
<phoneme>'A:lI2s,Vnd</phoneme>
</lexeme>
你隨機生成的行數可能不會在<lexeme>
元素排隊了。
我覺得做的最好的方式,是讓所有的<lexeme>
元素的列表,並隨機生成一個數字,它是名單的範圍內:
(原諒我,但代碼樣本中C#,我不相信我的VB.Net足夠寫我的VB代碼)
var lexemeList = xDocument.Descendants("lexeme").ToList();
var random = new Random();
var randomLexeme = lexemeList[random.Next(0, lexemeList.Count-1)];
randomLexme
屆時將有一個僞隨機<lexeme>
元素,因爲你需要獲得相應的<grapheme>
你可以解析它和<phoneme>
元素。
如果您這樣做,請記住,.net Random
類是僞隨機的,並將當前時間戳用作種子。如果要定期訪問對象,建議將var random = new Random()
變量設置爲類級字段並創建一次,只需使用Next()
方法獲取下一個數字,而不是在需要時創建新的對象一個隨機數。
下面是VB.Net更自包含的功能:
Dim rand = New Random()
Dim myXml = New XDocument()
Function GetRandomLexeme() as XElement
Dim lexemeList = myXml.Descendants("lexeme").ToList()
Dim randomLexeme = lexemeList(rand .Next(0, lexemeList.Count - 1))
GetRandomLexeme = randomLexeme
End Function
淨[隨機](http://msdn.microsoft.com/en-us/library/system.random.aspx)班在MSDN上 – psubsee2003 2013-02-09 20:09:22
如果你在谷歌搜索中尋找vb.net中的僞隨機數,第一個結果就是這個[VB.Net中的隨機詮釋](http://stackoverflow.com/questions/18676/random-int -in-VB網)。你檢查過了嗎? – Neolisk 2013-02-09 21:24:00