在c#中删除DataRow[]中的行
本文关键字:DataRow 删除 | 更新日期: 2023-09-27 18:08:22
我有一个数据数组DataRow[] drRequest
,有5行。然后我使用foreach
迭代每一行,并使用
foreach (DataRow dr in drRequest)
{
dr.Delete();
,但之后drRequest.Length
返回5而不是0。
我不能使用Datatable
,我需要使用DataRow[]
DataRow.Delete
不会从DataTable
中删除这一行。它只是将这一行标记为"如果您使用DataAdapter并调用DataAdapter . update,将从数据源中删除"。如果你想删除它,使用Remove
:
foreach (DataRow dr in drRequest)
{
dr.Table.Rows.Remove(dr);
}
如果drRequest
真的是DataRow[]
,那么它将总是有长度(无论它开始是什么)。数组永远不会改变长度。从来没有。你可以null
的值,但是…这可能不是稍后查看数组的其他代码所期望的。这只是数组的一个特性。
您可以考虑另一种数据结构。例如,可以从List<T>
中删除内容。但请注意,在幕后,这涉及到洗牌。如果您有选择地删除东西,那么list.RemoveAll(x => {return true to remove, false to keep});
知道如何最佳地执行此操作。