将语句对象切换到 int 问题

本文关键字:int 问题 语句 对象 | 更新日期: 2023-09-27 18:37:24

我正在尝试使用 selectedItem 命令查看列表框中已选择的内容,然后使用开关根据已选择的内容设置 activityLevel 变量。然后,我需要能够将该变量乘以设置为双精度的BMR变量。然后结果显示在标签中。

string activityLevel = lstActivityLevel.SelectedItem.ToString();
switch (activityLevel)
{
    case 1:
        activityLevel = Convert.ToInt32(ACTIVTY_LEVEL2);
        break;
    case 2:
        activityLevel = Convert.ToInt32(ACTIVTY_LEVEL3);
        break;
    case 3:
        activityLevel = Convert.ToInt32(ACTIVTY_LEVEL4);
        break;
    case 4:
        activityLevel = Convert.ToInt32(ACTIVTY_LEVEL5);
        break;
}
//Display BMR in label
lblBMRResult.Text = (BMR*activityLevel).ToString();

将语句对象切换到 int 问题

您可以使用

SelectedIndex ,然后将lstActivityLevel的每个项目设置为 0 到 4 之间的数字:

double activityLevel = 0;
switch (lstActivityLevel.SelectedIndex)
{
    case 0:
        activityLevel = ACTIVTY_LEVEL1;
        break;
    case 1:
        activityLevel = ACTIVTY_LEVEL2;
        break;
    case 2:
        activityLevel = ACTIVTY_LEVEL3;
        break;
    case 3:
        activityLevel = ACTIVTY_LEVEL4;
        break;
    case 4:
        activityLevel = ACTIVTY_LEVEL5;
        break;
}
lblBMRResult.Text = (BMR * activityLevel).ToString();

将 SelectedItem 值转换为字符串。值 1(整数)与"1"(字符串)不同...因此,您必须将 switch 语句更改为:

switch (activityLevel)
{
  case "1":
    blah, blah...
    break;
}

等等..

或者不要在 SelectedItem 上调用 ToString()。

或者,您可以使用 SelectedIndex 而不是 SelectedItem。