如果在LINQ查询中有Else Decisions

Mar*_*tin 4 c# linq winforms

我有一个小的LINQ查询来填充下拉控件(WinForms Telerik应用程序),其中的数据行显示两个值(ITNBR和描述):

var query = from i in db.ItemMasts.AsNoTracking()
orderby i.ITNBR
select new { i.ID, cboText = i.ITNBR + " - " + i.Description };

//Now we can bind the results to the control
cbo.DataSource = query.ToList();
cbo.DisplayMember = "cboText";
cbo.ValueMember = "ID";
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但我希望用户能够切换"cboText"的顺序 - 有时它显示为ITNBR - 描述,有时它显示为描述 - ITNBR

有没有办法在不编写两个单独的LINQ查询的情况下执行此操作?提前致谢.

Mah*_*esh 5

是的使用三元运算符.假设您使用它isUserflag来决定订单是否为真正的一个订单而错误然后是第二个订单.

 var query = from i in db.ItemMasts.AsNoTracking()
 orderby i.ITNBR
 select new { i.ID, cboText = isUserflag ? i.ITNBR + " - " + i.Description : i.Description + " - " +i.ITNBR };
Run Code Online (Sandbox Code Playgroud)