1

我试图弄清楚如何让我的方法从下拉列表中随机选择一个帐户类型。基本上,在我的 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,,希望我可以为该值分配一个随机状态,因此每次我运行程序时它都会随机选择一个值。

谢谢!

4

5 回答 5

1

也许:

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

不要在方法本身中创建随机实例。否则,当方法调用非常快(循环中的fe)时,您将创建相同的状态。您应该使用一个字段(如上所示)或将随机数作为参数传递给该方法。

我也将列表移到了方法之外,因为当它没有改变时总是创建它是无效的。最后,我曾经StatusTypes.Count确保您始终使用有效范围,即使您将来会更改列表(fe 添加新状态)。

于 2013-02-04T13:59:39.567 回答
0

如果您只是对从 DropdownList 中选择一个值感兴趣,您应该随机更改该SelectedIndex属性:

 Random randStatus = new Random();
 public void RandomStatusTypes()
 {
          ddlStatus.SelectedIndex = randStatus.Next(ddlStatus.Items.Count);
 }

这将随机更改为下拉列表中的任何值。请注意它的用途ddlStatus.Items.Count,因此如果您添加或删除项目,您将不必修改此代码。

于 2013-02-04T13:56:49.403 回答
0

首先,您需要从该方法返回一个索引(void = 它不返回任何内容)以用作selected value您的DropDownList.

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;
于 2013-02-04T14:04:32.077 回答
0

如果您需要 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);
     }
于 2013-02-04T13:59:56.533 回答
0

试试这个functionreturns a random item过去的myList

public string RandomListItem(List<string> myList)
{
    int randNo = new Random().Next(0, myList.Count());
    return myList[randNo];
}
于 2013-02-04T14:02:32.077 回答