我從數據庫中添加了一些字符串到列表中,我隨機的字符串順序和顯示它,但我不想隨機字符串再次出現,所以我做了刪除(字符串)但它不會工作。不想從列表字符串重複隨機
因此,我宣佈一個列表的字符串是這樣的:
List<string> questionNo = new List<string>();
這是我擺在pageLoad的代碼(Page.IsPostBack之外!):
protected void RandomMCQ1()
{
Random r = new Random();
int index = r.Next(questionNo.Count());
randomString = questionNo[index]; // Random a string from list (I declare randomString as a string in global)
questionNo.Remove(randomString); // Then remove it
}
所以我想測試它通過一個按鈕點擊這樣的後顯示randomString:
protected void btnNext_Click(object sender, EventArgs e)
{
Response.Write(questionNo.Count); // Display list<string> count
Response.Write(randomString); // Display the random string .
}
我有2個值在列表中:10和11
因此列表的計數爲2 當我點擊按鈕的計數是正確的(假設爲2,i之後點擊按鈕的計數,它減少到1) 但隨機字符串可顯示10或11,不應該是當我第一次點擊按鈕,它顯示10或11,如果它顯示10,第二我點擊它應該顯示的按鈕11然後第三次我按它不應該顯示什麼。
---編輯-----
這是我如何得到我的列表(此代碼是在pageLoad的外面!Page.IsPostBack)
protected void PopulateMCQ()
{
string query = "...";
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataReader dr;
dr = cmd.ExecuteReader();
while (dr.Read())
{
Label questionID = new Label();
questionID.Text = dr["englishID"].ToString();
questionNo.Add(questionID.Text); // I add the values to the list<string> here
}
conn.Close();
}
你的例子中缺少一些東西,因爲它會出現你永遠不會調用RandomMCQ1()'? –
我沒有發佈,我把RandomMCQ1()在頁面加載 – user2376998
我不能把RandomMCQ1()在按鈕中,它將重新填充列表每當我按下按鈕 –
user2376998