2015-06-10 172 views
-3

我正在研究這個程序,它的一個功能是讓程序自動從文本文件中隨機選擇一行(它包含的內容並不重要)並將其顯示在文本框中。從文本文件中讀取隨機文本到C中的文本框#

我花了很多時間混合和匹配各種代碼(streamReader等),但沒有什麼我似乎嘗試的作品。

這個我知道工程lol:Random rand = new Random();

此外,請請,請不要只給我一些網站的鏈接來幫助我,因爲這些網站是非常困惑我。

我在問的是有人向我解釋我應該做什麼以及我應該有什麼代碼。

謝謝您的提前!

+6

您可以發佈您的代碼那麼遠? – RagtimeWilly

回答

2

這會從文件中返回一個隨機行:

private static Random _rand = new Random();  

public static string GetRandomLine(string filename) 
{ 
    var lines = File.ReadAllLines(filename); 

    var lineNumber = _rand.Next(0, lines.Length); 

    return lines[lineNumber]; 
} 
+1

請不要在方法內部實例化'Random'實例,因爲可能會連續多次調用該方法,導致返回非隨機值。總是讓'Random'成爲一個靜態類字段來避免這些問題。 – Enigmativity

+1

另外,'rnd.Next'中的第二個參數是**獨佔**上限。您需要刪除' - 1'才能使其工作。 – Enigmativity

+1

@Enigmativity謝謝,我糾正了。 – RagtimeWilly

0

要顯示一個文本文件的隨機線,您應該:

  • 首先加載所有的文本行到一個數組( 數組中的每個項目應該是文件中的一行文本)
  • 然後,您想要生成一個介於0和 之間的文本行中的隨機數。爲此,請使用Random類。
  • 最後你想打印數組中使用 生成的隨機數的行。

這裏是僞代碼做同樣的事情:

Load TextFile 
string[] text = Array of lines of text in TextFile 
Random rnd = new Random object 
int randomLine = New random number generated between 0 and (text.Length - 1) 
Print text[randomLine]