我有一个DataSet包含列的列,调用它Type包含int.我正在使用LINQ来操纵它DataSet,我想要排序Type.该Type列现在仅包含3个值(1,2,3).我想排序,以便Type2列表中的第一个,然后是1和3.
有没有一个简单的解决方案,或者我将不得不自定义OrderBy?
几个解决方案:
table.AsEnumerable()
.OrderBy(r => r.Field<int>("Type")==2 ? 0 : 1)
.ThenBy(r => r.Field<int>("Type"));
Run Code Online (Sandbox Code Playgroud)
或者可能更好
table.AsEnumerable().
OrderBy(r => r.Field<int>("Type")==2
? 0
: r => r.Field<int>("Type"))
Run Code Online (Sandbox Code Playgroud)
或者也是优雅的Tim Schmelter的解决方案
table.AsEnumerable()
.OrderByDescending(r => r.Field<int>("Type")==2)
.ThenBy(r => r.Field<int>("Type"))
Run Code Online (Sandbox Code Playgroud)
优势或Tim Schmelter的解决方案:您不依赖于"伪值".
在第一个解决方案中,我们断言0是((字段的最小可能值)-1).
这是真的吗,它可以改变,我们不知道.
| 归档时间: |
|
| 查看次数: |
1223 次 |
| 最近记录: |