我正在获取一个包含以下LINQ表达式的项目列表,
var list = (from p in listData
orderby p.Code ascending
select new KeyValuePair<int, string>(p.Code, p.DESC)
).Distinct<KeyValuePair<int, string>>().ToList<KeyValuePair<int, string>>();
我将列表作为,
2,MEDICAL
5,RETAIL
6,OTHER
7,GOVT
按Code
现在,我的预期结果如下,
2,MEDICAL
5,RETAIL
7,GOVT
6,OTHER
我知道我可以通过修改包含这些值的sql table
或者通过在指定序列顺序的表中添加额外的数字column
来获得预期的结果。
是否可以在LINQ
的帮助下获得结果而无需修改表格?
答案 0 :(得分:10)
所以你希望OTHER
在最后一个位置?
from p in listData
orderby p.DESC == "OTHER" ascending, p.Code ascending
这可行,因为true
比false
“更高”,也许您觉得这更具可读性:
orderby p.DESC == "OTHER" ? 1 : 0 ascending