使用LINQ查询填充组合框(不同)

时间:2015-05-04 15:44:46

标签: c# linq combobox distinct

我有一个名为" cmbModel"我想在表中用两个不同的值填充数据库。 这就是我所做的:

private void Form1_Load(object sender, EventArgs e)
        {
            using (LINQSQLDataContext db = new LINQSQLDataContext())
            {
                cmbModel.DisplayMember = "szModel";
                cmbModel.DataSource = db.VehEcus.ToList<VehEcu>();
            }
        }

这将用我的表的szModel列填充我的cmbModel但是我想避免重复,我怎样才能使用&#34; distinct&#34;在查询中实现我的目标? 而且我想要显示我的表中的2个项目,如&#34; modelID-szModel&#34;在我的组合框中

由于

2 个答案:

答案 0 :(得分:1)

如果您只想显示单个列,则可以选择该列并使用Distinct

cmbModel.DataSource = db.InfoProg_VehEcus.Select(x => x.szModel).Distinct();

答案 1 :(得分:0)

您可以在查询后的任何时候应用Distinct()。我建议你在枚举之前这样做。

要创建自定义modelID-szModel字段,可以使用AsEnumerable()枚举查询,然后创建匿名类型并使用String.Format将值连接到新字段中。

select customer.customer_id
from circuits join customer on customer.cust_order = circuits.cust_order
where circuitId is not null
union
select customer.customer_id
from customer join telephone on telephone.number = customer.number
where telephone is not null