Search code examples
c#system.data.datatable

C# Best way to remove all datatables apart from one


I want to delete all datatables in a dataset apart from one. I've tried this :-

        foreach (DataTable table in DtSet.Tables)
        {
            if (table.TableName != "tblAccounts")
            {
                DtSet.Tables.Remove(table);
            }
        }  

but I get a

"Collection was modified; enumeration operation may not execute." error

.


Solution

  • You cannot modify a collection during enumeration. But you could use a for-loop:

    for (int i = DtSet.Tables.Count - 1; i >= 0; i--)
    {
        var table = DtSet.Tables[i];
        if (table.TableName != "tblAccounts")
            DtSet.Tables.Remove(table);
    }