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";
我有一个对象列表:
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";