我得到一个包含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>>();
Run Code Online (Sandbox Code Playgroud)
我把列表作为,
2,MEDICAL
5,RETAIL
6,OTHER
7,GOVT
Run Code Online (Sandbox Code Playgroud)
订购 Code
现在,我的预期结果如下,
2,MEDICAL
5,RETAIL
7,GOVT
6,OTHER
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过修改sql table包含这些值或通过向column表中添加额外的数字来指定序列顺序来获得预期的结果.
是否可以在LINQ不修改表格的情况下获得结果?
Tim*_*ter 10
所以你想OTHER成为最后的位置?
from p in listData
orderby p.DESC == "OTHER" ascending, p.Code ascending
Run Code Online (Sandbox Code Playgroud)
这可行,因为true它比"更高" false,也许你觉得这更可读:
orderby p.DESC == "OTHER" ? 1 : 0 ascending
Run Code Online (Sandbox Code Playgroud)