Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据随机顺序将对象添加到RadioButtonList?_C#_Asp.net_Random_Radiobuttonlist - Fatal编程技术网

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]);
}