【问题标题】:C# datatable custom sort, one field first, then the restC# datatable 自定义排序,先一个字段,然后是其余字段
【发布时间】:2017-02-28 16:24:20
【问题描述】:

我有包含这些值的数据表:

目前我是这样排序的:

customTable.DefaultView.Sort = "Module asc";

我想将 Intro 移动为包含的第一个模块,然后按编号从 1 开始移动其他模块,我该怎么做?

【问题讨论】:

  • 你能控制数据表的结构吗?如果是这样,您可以添加一个表达式字段,它是一个查找 Intro 的 IF(),如果找到它,则使用 0,否则使用模块编号。然后按该列排序。
  • 我完全控制了结构,你有什么建议,你能给我一个代码示例吗?谢谢
  • 谢谢@wdosanjos - 在您发布的链接中与我的答案相似:stackoverflow.com/a/583943/3485669

标签: c# c#-4.0 datatable datacolumn


【解决方案1】:

使用 DataTable 上的 Expression 字段,您可以在 DataTable 本身中包含排序(如果您将其传递给其他消费者):

dt.Columns.Add("xxSort", 
               (123).GetType(), 
               "IIF([Module] = 'Intro', 0, Convert([Module], 'System.Int32'))");
dt.DefaultView.Sort = "xxSort ASC";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多