在c#的下拉列表中选择随机字符串
本文关键字:选择 随机 字符串 下拉列表 | 更新日期: 2023-09-27 17:57:36
我正试图弄清楚如何让我的方法从下拉列表中随机选择帐户类型。基本上,在我的web应用程序中,用户会从下拉列表中选择:活动、非活动、潜在客户或暂停。我想做的是测试这个功能,并让我的方法在运行测试时随机选择一个值。
如果有意义的话,我很难将该方法引用到代码中的字符串值。任何帮助都将是伟大的,如果你需要更多的信息,请告诉我!
以下是我目前所拥有的:
public void RandomStatusTypes()
{
List<string> statusTypes = new List<string> { "ACTIVE", "INACTIVE", "PROSPECT", "SUSPENDED" };
Random randStatus = new Random();
int index = randStatus.Next(0, 6);
string value = statusTypes[index];
}
代码中会有一行写着StatusTyp = _Status,
,希望我能给这个值分配一个随机状态,这样每次我运行程序时,它都会随机选择一个值。
谢谢!
也许:
private static List<string> StatusTypes = new List<string>(){ "ACTIVE", "INACTIVE", "PROSPECT", "SUSPENDED" };
private static Random randStatus = new Random();
public string RandomStatusTypes()
{
int index = randStatus.Next(0, StatusTypes.Count);
return StatusTypes[index];
}
不要在方法本身中创建随机实例。否则,当方法调用得非常快(例如在循环中)时,您将创建相同的状态。您应该使用一个字段(如上所示)或将random作为参数传递给方法。
我还将列表移到了方法之外,因为总是在列表不变的情况下创建列表是无效的。最后,我使用了StatusTypes.Count
来确保您始终使用有效的范围,即使您将来要更改列表(例如添加新状态)。
如果您需要DropdownList的随机值,您应该将SelectedIndex
属性设置为随机数
public void RandomStatusTypes()
{
List<string> statusTypes = new List<string> { "ACTIVE", "INACTIVE", "PROSPECT", "SUSPENDED" };
Random randStatus = new Random();
dropList.Items.AddRange(statusTypes);
dropList.SelectedIndex = randStatus.Next(0, 3);
}
如果您只是想从下拉列表中选择一个值,您应该随机更改SelectedIndex
属性:
Random randStatus = new Random();
public void RandomStatusTypes()
{
ddlStatus.SelectedIndex = randStatus.Next(ddlStatus.Items.Count);
}
这将随机更改为下拉列表中的任何值。请注意,它使用ddlStatus.Items.Count
,所以如果您添加或删除项目,就不必修改此代码。
首先,您需要从该方法返回一个索引(void=它不返回任何内容),用作DropDownList
的selected value
。
public int RandomStatusTypes()
{
List<string> statusTypes = new List<string> { "ACTIVE", "INACTIVE", "PROSPECT", "SUSPENDED" };
Random randStatus = new Random();
return randStatus.Next(0, statusTypes.Count);
}
之后,你可以在类似的地方调用该方法
var statusForDropDown= RandomStatusTypes();
并将statusForDropDown
分配给您的DropDownList
MyDropDownList.SelectedIndex=statusForDropDown;
试试这个function
,哪个returns a random item
来自通过的myList
public string RandomListItem(List<string> myList)
{
int randNo = new Random().Next(0, myList.Count());
return myList[randNo];
}