我得到一个包含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
按代码订购
现在,我的预期结果如下,RETAIL 7,GOVT 6,OTHER
我知道我可以通过修改包含这些值的sql表或通过向表中添加额外的数字列来指定序列顺序来获得预期的结果.
是否有可能在没有修改表的情况下在LINQ的帮助下获得结果?
解决方法
所以你想让OTHER处于最后位置?
from p in listData orderby p.DESC == "OTHER" ascending,p.Code ascending
这是有效的,因为true是“高”而不是假,也许你觉得这更可读:
orderby p.DESC == "OTHER" ? 1 : 0 ascending