正如标题所说,我有一个数据表,现在我想删除数据表中除最后一行之外的所有行。我知道有很多复杂的方法可以做到这一点,但我想知道简短的& amp;有效的方法来完成这项任务。
答案 0 :(得分:3)
DataRow dr = dt.Rows[dt.Rows.Count -1];
dt.Rows.Clear();
dt.Rows.Add(dr);
答案 1 :(得分:3)
您可以使用向后for
- 循环+ RemoveAt
:
for (int i = dataTable.Rows.Count - 2; i >= 0; i--)
dataTable.Rows.RemoveAt(i);
答案 2 :(得分:2)
var lastRow = myDataTable.AsEnumerable().Last();
var newDataTable = new[] {lastRow}.CopyToDataTable();
优点:
Last()
会使您的意图绝对清晰,并且您无法获得任何错误。缺点:
O(n)
遍历列表)。参考:
答案 3 :(得分:1)
dataTable = dataTable.AsEnumerable().Skip(dataTable.Rows.Count - 1).CopyToDataTable();
答案 4 :(得分:0)
您可以尝试使用简单的for循环执行此操作,如下所示
foreach (DataRow dr in ds.Tables[0].Rows)
{
if(!dr.Equals(ds.Tables[0].AsEnumerable().Last()))
{
ds.Tables[0].Rows.Remove(dr);
}
}