C# 使用数组随机显示相同RadioButton列表项的顺序

C# 使用数组随机显示相同RadioButton列表项的顺序,c#,asp.net,C#,Asp.net,我使用数组随机生成RadioButton列表项的顺序,但当我选择一个单选按钮时,选择将被释放并生成另一个顺序 我试图从数据库中的表中获取一个问题并在单选按钮列表中添加选项,我想更改每个用户单选按钮的列表顺序 我的代码: RBList.ClearSelection(); RBList.Items.Clear(); string[] arr = new string[4]{ ds.Tables["Quiz"].Rows[0][1].ToString(),

我使用数组随机生成RadioButton列表项的顺序,但当我选择一个单选按钮时,选择将被释放并生成另一个顺序

我试图从数据库中的表中获取一个问题并在单选按钮列表中添加选项,我想更改每个用户单选按钮的列表顺序

我的代码:

RBList.ClearSelection();
    RBList.Items.Clear();
    string[] arr = new string[4]{
        ds.Tables["Quiz"].Rows[0][1].ToString(),
        ds.Tables["Quiz"].Rows[0][2].ToString(),
        ds.Tables["Quiz"].Rows[0][3].ToString(),
        ds.Tables["Quiz"].Rows[0][4].ToString()
    };
    System.Random rnd = new System.Random();
    arr = arr.OrderBy(x => rnd.Next()).ToArray();

    RBList.Items.Add(arr[0]);
    RBList.Items.Add(arr[1]);
    RBList.Items.Add(arr[2]);
    RBList.Items.Add(arr[3]);

    ques1.Text = (ds.Tables["Quiz"].Rows[0][0]).ToString();
    int p = Convert.ToInt32(q_no.Text);
    p += 0;
    q_no.Text = p.ToString();

也许您只需要检查页面是否是第一次呈现的,然后随机化RadioButtonList项。像这样的,

private void Page_Load()
{
    if (!IsPostBack)
    {
        // your randomize code
    } else {
        // retrieve the selected item, but don't randomize the items again.
    }
}