首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当项目包含字符串时才将其添加到组合框中

仅当项目包含字符串时才将其添加到组合框中
EN

Stack Overflow用户
提问于 2020-12-21 14:16:42
回答 2查看 49关注 0票数 1

我试图实现的是向comboBox24添加一个项,但前提是comboBox10中包含一个字符串。

代码语言:javascript
复制
          case "PN63":
                    comboBox24.Items.Clear();
                    
                    if (comboBox10.Items.Contains("CL150"))
                    {
                        comboBox24.Items.Add("ASME B16.5-150 RF");
                    }
                    else if (comboBox10.Items.Contains("PN16"))
                    {
                        comboBox24.Items.Add("FLG EN1092-1 PN16 B1");
                    }
                    else if (comboBox10.Items.Contains("PN25"))
                    {
                        comboBox24.Items.Add("FLG EN1092-1 PN25 B1"); ;
                    }
                    else if (comboBox10.Items.Contains("PN40"))
                    {
                        comboBox24.Items.Add("FLG EN1092-1 PN40 B1");
                    }
                    else if (comboBox10.Items.Contains("CL300"))
                    {
                        comboBox24.Items.Add("ASME B16.5-300 RF");
                    }
                    break;

到目前为止,即使在多个条件为真的情况下,我也只实现了添加一个(第一个)项。我不是很有经验,但我认为if语句在true之后会中断。

有人能告诉我如何做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-21 16:21:27

case "PN63":让我很担心。您是否有大量的其他情况,它们基本上具有相同的代码类型,但具有不同的值?

如果是这样的话,我建议您使用更类似于:

代码语言:javascript
复制
case "PN63":
    string[,] pairs = {
        {"CL150", "ASME B16.5-150 RF" },
        {"PN16", "FLG EN1092-1 PN16 B1" },
        {"PN25", "FLG EN1092-1 PN25 B1" },
        {"PN40", "FLG EN1092-1 PN40 B1" },
        {"CL300", "ASME B16.5-300 RF" }
    };
    SetComboboxes(comboBox10, comboBox24, pairs);
    break;

使用helper方法SetComboboxes()

代码语言:javascript
复制
private void SetComboboxes(ComboBox comboToCheck, ComboBox comboToAdd, string[,] pairs)
{
    comboToAdd.Items.Clear();
    for (int r = 0; r <= pairs.GetUpperBound(0); r++)
    {
        if (comboToCheck.Items.Contains(pairs[r, 0]))
        {
            comboToAdd.Items.Contains(pairs[r, 1]);
        }
    }
}
票数 3
EN

Stack Overflow用户

发布于 2020-12-21 14:55:22

您正在测试不同的条件,并希望所有条件都能执行,因此您应该删除else关键字,并使它们只在语句中出现。

代码语言:javascript
复制
          case "PN63":
                comboBox24.Items.Clear();
                
                if (comboBox10.Items.Contains("CL150"))
                {
                    comboBox24.Items.Add("ASME B16.5-150 RF");
                }
                if (comboBox10.Items.Contains("PN16"))
                {
                    comboBox24.Items.Add("FLG EN1092-1 PN16 B1");
                }
                if (comboBox10.Items.Contains("PN25"))
                {
                    comboBox24.Items.Add("FLG EN1092-1 PN25 B1"); ;
                }
                if (comboBox10.Items.Contains("PN40"))
                {
                    comboBox24.Items.Add("FLG EN1092-1 PN40 B1");
                }
                if (comboBox10.Items.Contains("CL300"))
                {
                    comboBox24.Items.Add("ASME B16.5-300 RF");
                }
                break;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65394356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档