C# 如何根据随机顺序将对象添加到RadioButtonList?
我正在系统后端创建一个单选按钮列表。 是否有任何方法可以让我以随机顺序显示项目 我的代码:C# 如何根据随机顺序将对象添加到RadioButtonList?,c#,asp.net,random,radiobuttonlist,C#,Asp.net,Random,Radiobuttonlist,我正在系统后端创建一个单选按钮列表。 是否有任何方法可以让我以随机顺序显示项目 我的代码: <asp:radiobuttonlist id="RadioButtonList1" runat="server" TextAlign="Right" CellPadding="10" RepeatLayout="Table" CausesValidation="Tru
<asp:radiobuttonlist id="RadioButtonList1" runat="server"
TextAlign="Right" CellPadding="10" RepeatLayout="Table"
CausesValidation="True" CssClass="radioAnswers" ClientIDMode="Static"></asp:radiobuttonlist>
您必须使用“OrderBy”方法对RadioButtonList的数据源进行排序。 当你想随机排序时,你必须使用一个随机因子 为此,应在C#中使用“Random”类 使用以下代码:(将数据源放在单选按钮列表中,而不是“yourList”)
使用random类创建一个数字列表,范围1为开始,4为单选按钮的表格编号。 用listitems创建另一个列表,然后循环遍历数字列表并将它们添加到索引中,因为分层必须是一个整数,您必须从数字列表中减去一
Random ran = new Random();
var numbers = Enumerable.Range(1, 4).OrderBy(i => ran.Next()).ToList();
List<ListItem> ans= new List<ListItem>();
ans.Add(new ListItem(rsQuestion["a"].ToString(), "A"));
ans.Add(new ListItem(rsQuestion["b"].ToString(), "B"));
ans.Add(new ListItem(rsQuestion["c"].ToString(), "C"));
ans.Add(new ListItem(rsQuestion["d"].ToString(), "D"));
foreach (int num in numbers)
{
RadioButtonList1.Items.Add(ans[num - 1]);
}
Random ran=new Random();
var numbers=Enumerable.Range(1,4).OrderBy(i=>ran.Next()).ToList();
List ans=新列表();
ans.Add(新列表项(rsQuestion[“a”].ToString(),“a”);
ans.Add(新列表项(rsQuestion[“b”].ToString(),“b”);
ans.Add(新列表项(rsQuestion[“c”].ToString(),“c”);
ans.Add(新列表项(rsQuestion[“d”].ToString(),“d”);
foreach(整数)
{
RadioButtonList1.Items.Add(ans[num-1]);
}
该AFAIK没有内置方法。但是,要实现一个无效的AddRadioButtonListRandoOrder(RadioButtonList,list values),这应该不是太大的问题。请参见:-它是用于list而不是RadioButtonList的,但是可以很容易地进行调整。我的列表称为RadioButtonList1 RadioButtonList1是您希望用数据库中的一些数据填充它的控件。“yourList”是来自数据库的数据源。
Random ran = new Random();
RadioButtonList1.DataSource = yourList.OrderBy(x => ran.Next()).ToList();
Random ran = new Random();
var numbers = Enumerable.Range(1, 4).OrderBy(i => ran.Next()).ToList();
List<ListItem> ans= new List<ListItem>();
ans.Add(new ListItem(rsQuestion["a"].ToString(), "A"));
ans.Add(new ListItem(rsQuestion["b"].ToString(), "B"));
ans.Add(new ListItem(rsQuestion["c"].ToString(), "C"));
ans.Add(new ListItem(rsQuestion["d"].ToString(), "D"));
foreach (int num in numbers)
{
RadioButtonList1.Items.Add(ans[num - 1]);
}