我从数据库中添加了一些字符串到列表中,我随机的字符串顺序和显示它,但我不想随机字符串再次出现,所以我做了删除(字符串)但它不会工作。不想从列表字符串重复随机
因此,我宣布一个列表的字符串是这样的:
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