加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:31:38 所属栏目:百科 来源:网络整理
导读:我得到一个包含LINQ表达式的项目列表, var list = (from p in listData orderby p.Code ascending select new KeyValuePairint,string(p.Code,p.DESC) ).DistinctKeyValuePairint,string().ToListKeyValuePairint,string(); 我把列表作为, 2,MEDICAL5,RETAIL
我得到一个包含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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读