我有一个必须排序的数据表,但是即使在对数据表进行排序后,我也想返回特定行作为最后一行。我将通过特定列中的字符串值来标识该行。
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();
这是有效的,因为比较返回 true
或 false
并且 false
是“lower”。
如果有人只是想知道如何将表中的行移动到另一个索引,如标题所示:Add data row to datatable at predefined index
关于c# - 更改数据表中的行位置或移动数据表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22252570/