private DataTable[] CreateToplevelTables()
{
ArrayList topTables = new ArrayList();
for (int i = 0; i < _dTables.Count; i++)
{
DataTable table = (DataTable)_dTables[i];
if (table.ParentRelations.Count == 0)
topTables.Add(table);
else
{
bool fNestedButNotSelfNested = false;
for (int j = 0; j < table.ParentRelations.Count; j++)
{
if (table.ParentRelations[j].Nested)
{
if (table.ParentRelations[j].ParentTable == table)
{
fNestedButNotSelfNested = false;
break;
}
fNestedButNotSelfNested = true;
}
}
if (!fNestedButNotSelfNested)
topTables.Add(table);
}
}
if (topTables.Count == 0)
{
return Array.Empty<DataTable>();
}
var temp = new DataTable[topTables.Count];
topTables.CopyTo(temp, 0);
return temp;
}