微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用LINQ有条件地更改List项的顺序

我得到一个包含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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐