C# 需要为组合框项(字符串)指定(int)值的帮助吗

C# 需要为组合框项(字符串)指定(int)值的帮助吗,c#,combobox,C#,Combobox,我正在用C语言创建一个带有下拉框组合框的程序。我想让用户从框中选择项目,但我需要为项目分配一个整数值,以便我可以执行一些数学运算 但是,如果我尝试添加这样的值,它将不起作用 this.selectquest.Items.AddRange(new object[] { "Level 51", int 5000000 "Level 52", int 5000000 "Level 53", int 5000000}); 哈哈,这看起来可能很可笑,但是是

我正在用C语言创建一个带有下拉框组合框的程序。我想让用户从框中选择项目,但我需要为项目分配一个整数值,以便我可以执行一些数学运算

但是,如果我尝试添加这样的值,它将不起作用

this.selectquest.Items.AddRange(new object[] {
        "Level 51", int 5000000
        "Level 52", int 5000000
        "Level 53", int 5000000});
哈哈,这看起来可能很可笑,但是是的


因此,我试图找出如何向组合框中的字符串添加特定的int值,以便让程序在最后执行数学运算。

只需将它们作为字符串添加到组合框中即可。然后,在提交表单时,您必须将其转换回INT,如:

int value = Convert.ToInt32(cbo.selectedValue);

您可以为此使用类,例如:

public class Level
{
    public string Name { get; set; }
    public int Number { get; set; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
     var selectedValue = (int)comboBox1.SelectedValue;
}
创建级别的列表

var list = new List<Level>
        {
            new Level {Name = "Level 51", Number = 123214},
            new Level {Name = "Level 52", Number = 32343},
            new Level {Name = "Level 53", Number = 32343}
        };
然后,您可以在SelectedIndexChanged事件中轻松获取所选值,例如:

public class Level
{
    public string Name { get; set; }
    public int Number { get; set; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
     var selectedValue = (int)comboBox1.SelectedValue;
}

使用如下自定义类:

class Level
{
    public string Name { get; set; }
    public int Value { get; set; }
}
然后将您的级别添加到组合框:

this.selectquest.Items.AddRange(new Level[] {
    new Level() {Name = "Level 51", Value = 5000000},
    new Level() {Name = "Level 52", Value = 5000000},
    new Level() {Name = "Level 53", Value = 5000000}
});
最后,在SelectedIndexChanged中,执行以下操作

private void selectquest_SelectedIndexChanged(object sender, EventArgs e)
{
    var v = selectquest.SelectedItem as Level;
    int x = v.Value;
}
编辑:忘记添加:

selectquest.DisplayMember = "Name";

干杯!你打字很快:-谢谢你。它没有给我任何错误,但现在我的组合框中的所有字符串值都显示为:Name\u of_form.level,因此字符串值没有正确显示。@Advancin:您需要设置组合框的ValueMember和DisplayMember属性。请参阅我的更新。因为我的解决方案不使用数据源,所以实际上不需要ValueMember。@Lucmorin先生:是的,您的解决方案不需要ValueMember,很抱歉编辑错误。