如何将其他行添加到LINQ查询?

sov*_*tha 2 c# linq union

我有一个LINQ查询,它从数据集中检索行并将其绑定到Winforms组合框:

namespace KimHongAutoAccessory.Forms
{
    public partial class EngineFilter : Form
    {
        public EngineFilter()
        {
            InitializeComponent();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void EngineFilter_Load(object sender, EventArgs e)
        {

            this.engineFilterTableAdapter.Fill(this.manufacturerEngine.EngineFilter);

            var manufacturers = (from m in manufacturerEngine.EngineFilter
                                 select new { m.ManufacturerID, m.Manufacturer })
                                 .Distinct().ToList();

            cboManufacturerFilter.DataSource = manufacturers.ToArray();
            cboManufacturerFilter.DisplayMember = "Manufacturer";
            cboManufacturerFilter.ValueMember = "ManufacturerID";


        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我想向组合框添加一个联合项,例如单词“ [All]”:

|-------|
|TOYOTA |
|-------|
|KUBOTA |
|-------|
|FORD   |
|-------|
|[All]  |
|-------|
Run Code Online (Sandbox Code Playgroud)

有人可以给我个把戏吗?

Mat*_*ton 5

大概您的“(全部)”项目的ID会有一个特殊的值,因此您知道何时选择它。假设其ID为-1。

var manufacturers = (from m in manufacturerEngine.EngineFilter
                     select new { m.ManufacturerID, m.Manufacturer }
                    ).Distinct().ToList();

manufactorers.Add(new { ManufacturerID = -1, Manufacturer = "(All)" });

cboManufacturerFilter.DataSource = manufacturers.ToArray();
// ... etc ...
Run Code Online (Sandbox Code Playgroud)