是否可以将变量合并到C#switch{case}语句中

是否可以将变量合并到C#switch{case}语句中,c#,winforms,C#,Winforms,==>请注意:我——OP——强烈反对这是一个重复的您可以通过编程方式创建控件并创建数组: var combos = Enumerable.Range(0,100) .Select((x, i) => new ComboBox {Name = $"TypeComboBox{i}", Visible = false, ...}) .ToArray(); var combos = parent.Controls.OfType<ComboBox>()

==>请注意:我——OP——强烈反对这是一个重复的您可以通过编程方式创建控件并创建数组:

var combos = Enumerable.Range(0,100)
.Select((x, i) => new ComboBox {Name = $"TypeComboBox{i}", Visible = false, ...})
.ToArray();
var combos = parent.Controls.OfType<ComboBox>()
             .OrderBy(c => c.Name)
             .ToArray();  //parent can be your form or whatever 
                          //control that contains your comboboxes
                      
或者,您可以按名称获取控件:

ComboBox GetCombo(int index)
{
    var name = "TypeComboBox" + index.ToString().PadLeft('0',2); 
    var combo = this.Controls[name];
    return combo;
}
也可以将现有控件分配给阵列:

var combos = Enumerable.Range(0,100)
.Select((x, i) => new ComboBox {Name = $"TypeComboBox{i}", Visible = false, ...})
.ToArray();
var combos = parent.Controls.OfType<ComboBox>()
             .OrderBy(c => c.Name)
             .ToArray();  //parent can be your form or whatever 
                          //control that contains your comboboxes
                      
var combos=parent.Controls.OfType()
.OrderBy(c=>c.Name)
.ToArray()//家长可以是你的形式或任何形式
//控件,该控件包含您的组合框

@Oliver Rogier thanx,但不,它不是。我提出这个问题一定很糟糕。我所要做的就是更改案例“奖金金额”:{AmountTextBox00.Visible=true;}break;对于“奖金金额”的大小写:{AmountTextBox0[插入变量].Visible=true;}break;我会澄清这个问题。@.ArtHansen因此使用副本应该做到这一点,正如Ashkanmobayenkhaiabani的回答所揭示的那样(对不起,我没有真正读过它,也没有读过你的代码,但你的评论似乎证实了我对你的目标的理解)。@OlivierRogier原谅我的无知,但我没有把“使用副本”联系起来以及将变量合并到switch{case}语句中;请澄清。@.ArtHansen一旦您使用对象的变量代码字符串名称获得对象实例的引用,并将其转换为所需类型(如下面的副本和答案所述),您就能够实现您的目标。但是您无法编写您尝试的内容,因为for eg
controlName0[variable]
是一个索引数组,它不能是代码静态字符串名称与运行时字符串变量值的串联。。。C#不支持这一点。这与
$“controlName0{variable}”是一样的。action
:您需要按名称查找控件
$“controlName0{variable}
,cast和next call
action
@ArtHansen看看我的第二个解决方案,这是一个仅用于组合框的示例,您可以选择任何类似的控件。(我删除了我的第一条注释,因为它无助于澄清问题)我没有试图通过编程方式创建/查找特定控件。我试图将一个变量合并到switch{case1,case2,case3}语句中,以便相同的语句可以被许多控件事件使用。