我有一个小的LINQ查询来填充下拉控件(WinForms Telerik app),其中包含显示两个值(ITNBR和Description)的数据行:
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";
哪个工作正常。但我希望用户能够切换“cboText”的顺序 - 有时它显示为ITNBR - 描述,有时它显示为描述 - ITNBR
如果不编写两个单独的LINQ查询,有没有办法做到这一点? 提前谢谢。
答案 0 :(得分: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 };