c# - 更改数据表中的行位置或移动数据表中的行

标签 c# datatable ado.net dataset

我有一个必须排序的数据表,但是即使在对数据表进行排序后,我也想返回特定行作为最后一行。我将通过特定列中的字符串值来标识该行。

  public DataTable StandardReport3B(string missionId, string reportType, string startDate, string endDate)
    {
        List<long> missionIdList = new List<long>();
        string[] missionIds = missionId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

        foreach (string mission in missionIds)
        {
            missionIdList.Add(Convert.ToInt64(mission));
        }

        DataTable dt = new DataTable();
        object reportData = null;

        using (var ctx = new MedicalServiceEntities())
        {
            reportData = ctx.GetData(startDate, endDate, missionId).ToList();
        }

        dt = this.GenericListToDataTable(reportData);

        DataView dv = dt.DefaultView;
        dv.Sort = dt.Columns[0].ColumnName + " Asc";
        return dv.ToTable();
    }

最佳答案

您可以使用LINQ-to-DataSet:

dt = dt.AsEnumerable()
    .OrderBy(r => r.Field<string>(0) == "Special Value")
    .ThenBy(r => r.Field<string>(0))
    .CopyToDataTable();

这是有效的,因为比较返回 truefalse 并且 false 是“lower”。


如果有人只是想知道如何将表中的行移动到另一个索引,如标题所示:Add data row to datatable at predefined index

关于c# - 更改数据表中的行位置或移动数据表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22252570/

相关文章:

c# - 将 z-index 添加到窗口

c# - 我应该使用 int 还是 Int32

c# - 如何让重载的构造函数同时调用默认构造函数和基构造函数的重载?

javascript - 忽略 DataTables 搜索中的特殊字符

c# - SQL Server 截断表 - 删除并重新创建 FK 约束脚本

python - 要汇总的 XML 文件

c# - 检测应用程序的启动

jsf - 如何在数据表 primefaces 中获取新的过滤值

.net - 从 DataTable/DataView 中删除空列

mysql - 具有关系的计数表 vb.net