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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的C#相关文章