[英]Remove all rows from the datatable except last one
如标题所示,我有一个数据表,现在我想删除数据表中除最后一行以外的所有行。 我知道可以有很多复杂的方法,但是我想知道执行此任务的快捷方式。
var lastRow = myDataTable.AsEnumerable().Last();
var newDataTable = new[] {lastRow}.CopyToDataTable();
好处:
Last()
可以使您的意图绝对清晰,并且您不会出错。 缺点:
O(n)
次迭代)。 参考:
DataRow dr = dt.Rows[dt.Rows.Count -1];
dt.Rows.Clear();
dt.Rows.Add(dr);
你可以使用一个向后for
-loop + RemoveAt
:
for (int i = dataTable.Rows.Count - 2; i >= 0; i--)
dataTable.Rows.RemoveAt(i);
dataTable = dataTable.AsEnumerable().Skip(dataTable.Rows.Count - 1).CopyToDataTable();
您可以尝试使用以下简单的for循环执行此操作
foreach (DataRow dr in ds.Tables[0].Rows)
{
if(!dr.Equals(ds.Tables[0].AsEnumerable().Last()))
{
ds.Tables[0].Rows.Remove(dr);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.