C# LINQ查询中的If-Else决策

C# LINQ查询中的If-Else决策,c#,winforms,linq,C#,Winforms,Linq,我有一个小的LINQ查询来填充一个下拉控件(WinForms Telerik app),其中的数据行显示两个值(ITNBR和Description): 这很好用。但我希望用户能够切换“cboText”的顺序,比如有时显示为ITNBR-Description,有时显示为Description-ITNBR 在不编写两个单独的LINQ查询的情况下,有没有办法做到这一点? 提前感谢。是,请使用三元运算符。假设您使用isUserflag来决定顺序,如果一个顺序为真,那么第二个顺序为假 var query

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

这很好用。但我希望用户能够切换“cboText”的顺序,比如有时显示为ITNBR-Description,有时显示为Description-ITNBR

在不编写两个单独的LINQ查询的情况下,有没有办法做到这一点?
提前感谢。

是,请使用三元运算符。假设您使用
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 };

是使用三元运算符
选择新的{i.cd,CboText=isusefag?i.ITNBR+“-”+i.Description:i.Description+“-”+i.ITNBR}
if语句的条件是什么?是用户设置还是基于查询?感谢您的回复。条件只是一个传递到例程中的布尔变量(Boolean ITNBRFirst)——类似于这样。因此,如果(ITNBRFirst==true)etcThanks的人-这非常有效!现在我只需要在下拉列表中“均匀地隔开”项目。我原以为用CourierNew作为字体就可以了,但不幸的是它没有。。。。
 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 };