ComboBox 中的 System.Int32[]

System.Int32[] in ComboBox

我有一个对象列表:

class Cylindree
{
    public int NomCylindree;

    public static List<Cylindree> lesCylindreesTwoStroke = new List<Cylindree>()
    {
        new Cylindree() { NomCylindree = 125},
        new Cylindree() { NomCylindree = 144},
        new Cylindree() { NomCylindree = 150},
        new Cylindree() { NomCylindree = 200},
        new Cylindree() { NomCylindree = 250},
        new Cylindree() { NomCylindree = 300}
    };

    public static List<Cylindree> lesCylindreesFourStroke = new List<Cylindree>()
    {
        new Cylindree() { NomCylindree = 250},
        new Cylindree() { NomCylindree = 300},
        new Cylindree() { NomCylindree = 350},
        new Cylindree() { NomCylindree = 400},
        new Cylindree() { NomCylindree = 450},
        new Cylindree() { NomCylindree = 500}
    };

    public Cylindree(int NomCylindree)
    {
        this.NomCylindree = NomCylindree;
    }

    public Cylindree() { }
}

在我看来,这个 :

private void lesMoteurs_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lesMoteurs.Text == "2T")
            {
                lesCylindrees.Items.Add(Cylindree.lesCylindreesTwoStroke.Select(x => x.NomCylindree).ToArray().ToString());
            }
        }

我的 ComboBox 中有 "System.Int32[]"。 我想让我的 ComboBox 中的列表达到 select 我想要的值。 请问我需要做什么才能得到我的清单?

感谢您的进一步帮助

这很简单。就目前而言,您正在正确使用 linq 来创建一个整数列表,但是您要添加到组合框的项目是将该 ARRAY 转换为字符串的结果。如果要将每个整数添加到数组中,可以执行以下操作:

if (lesMoteurs.Text == "2T") {
    var intArr = Cylindree.lesCylindreesTwoStroke.Select(x => x.NomCylindree).ToArray();
    foreach (int i in intArr) {
        lesCylindrees.Items.Add(i.ToString());
    }
}

或者,集合确实有一个接受数组的 AddRange 函数:

lesCylindrees.Items.AddRange(Cylindree.lesCylindreesTwoStroke.Select(x => x.NomCylindree.ToString()).ToArray());

另一种选择是将值设置为 DataSource :

lesCylindrees.DataSource = Cylindree.lesCylindreesTwoStroke.ConvertAll(x => x.NomCylindree);

lesCylindrees.DataSource = Cylindree.lesCylindreesTwoStroke;
lesCylindrees.DisplayMember = "NomCylindree";