如果在LINQ查询中有Else Decisions

时间:2015-02-25 11:42:51

标签: c# winforms linq

我有一个小的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查询,有没有办法做到这一点? 提前谢谢。

1 个答案:

答案 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 };