Wenn alle Elemente für eine bestimmte Spalte leer sind, möchte ich diese Spalte aus der DataTable entfernen. Was ist der eleganteste Weg, um diese Operation für alle Spalten in der DataTable durchzuführen?Entfernen Sie alle Spalten ohne Daten aus DataTable
9
A
Antwort
32
Sie können das Compute
Methode, wie folgt aus:
if (table.Compute("COUNT(ColumnName)", "ColumnName <> NULL") == 0)
table.Columns.Remove("ColumnName");
Alternativ können Sie LINQ verwenden:
if (table.AsEnumerable().All(dr => dr.IsNull("ColumnName")))
table.Columns.Remove("ColumnName");
EDIT: vollständig die Frage zu beantworten:
foreach(var column in table.Columns.Cast<DataColumn>().ToArray()) {
if (table.AsEnumerable().All(dr => dr.IsNull(column)))
table.Columns.Remove(column);
}
Sie müssen ToArray
aufrufen, da die Schleife die Sammlung ändern wird.
0
Function RemoveEmptyColumns(Datatable As DataTable) As Boolean
Dim mynetable As DataTable = Datatable.Copy
Dim counter As Integer = mynetable.Rows.Count
Dim col As DataColumn
For Each col In mynetable.Columns
Dim dr() As DataRow = mynetable.Select(col.ColumnName + " is Null ")
If dr.Length = counter Then
Datatable.Columns.Remove(col.ColumnName)
Datatable.AcceptChanges()
End If
return true
end function
0
public static void RemoveNullColumnFromDataTable(DataTable dt)
{
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
if (dt.Rows[i][1] == DBNull.Value)
dt.Rows[i].Delete();
}
dt.AcceptChanges();
}
+0
Sicher löscht dies die gesamte Zeile, wenn Spalte 1 in dieser Zeile DBNULL ist. Nicht ganz, was das OP wollte. – Steve
0
private static void RemoveUnusedColumnsAndRows(DataTable table)
{
for (int h = 0; h < table.Rows.Count; h++)
{
if (table.Rows[h].IsNull(0) == true)
{
table.Rows[h].Delete();
}
enter code here
}
table.AcceptChanges();
foreach (var column in table.Columns.Cast<DataColumn>().ToArray())
{
if (table.AsEnumerable().All(dr => dr.IsNull(column)))
table.Columns.Remove(column);
}
table.AcceptChanges();
}
1
Sie klar alle Spalte in datatable.you wie die Verwendung.
datatable.Columns.Clear();
Verwandte Themen
- 1. Webix Spalten aus einer DataTable entfernen?
- 2. Entfernen Sie Spalten von DataTable in C#
- 3. So entfernen Sie alle Objekte aus den Core-Daten
- 4. Batch Entfernen Sie alle Dateien ohne Erweiterungen aus der Liste
- 5. Entfernen oder leeren Sie alle Daten aus einem Pandas Datenrahmen
- 6. jQuery Datatable reload Daten - JSON zu Spalten
- 7. Datatable Buttons - Daten aus eckigen
- 8. Geben Sie alle Spalten zwischen Daten ohne einen bestimmten Wert aus einer anderen Spalte zurück
- 9. So entfernen Sie Spalten aus einem Array
- 10. Entfernen Sie leere Spalten aus read_csv()
- 11. Entfernen Sie mehrere Spalten aus data.table
- 12. Verwenden Sie LINQ, um Daten aus DataTable zu gruppieren
- 13. jQuery überprüfen Sie alle Kontrollkästchen in Datatable
- 14. Datatable Spalten reagiert nicht?
- 15. Entfernen Sie alle UIButton aus Unteransicht
- 16. So entfernen Sie alle Elemente aus Array
- 17. Entfernen Sie alle Objekte aus einer UIView
- 18. Entfernen Sie alle Fragmente aus dem Container
- 19. Entfernen Sie alle Duplikate aus Redshift-Datenbank
- 20. Entfernen Sie alle Objekte aus einer uiview?
- 21. Entfernen Sie alle Leerzeichen aus einer Zeichenfolge
- 22. Entfernen Sie alle Polster aus Bokeh Plot
- 23. Individuelle Suche in bestimmten Spalten, DataTable
- 24. So entfernen Sie alle Dateien aus dem Verzeichnis, ohne das Verzeichnis in Node.js zu entfernen
- 25. Wie entfernen Sie alle Anmerkungen aus MKMapView, ohne den blauen Punkt zu entfernen?
- 26. Reorder Datatable Spalten
- 27. Suchfilter in Datatable entfernen
- 28. Wie extrahiere ich Daten aus einer DataTable?
- 29. Entfernen Sie ungültige Daten aus VarChar-Spalte
- 30. Entfernen nicht verwendeter Spalten aus einem Balkendiagramm
Schön. Passen Sie den Code an, um alle Spaltennamen zu überprüfen, und Sie erhalten das grüne Häkchen. – Larsenal
höre ich PlzSendTheCodes? –
Vielleicht ;-). Ich habe es bereits selbst implementiert. Ich will es nur noch nicht richtig markieren, da es die erste Frage nicht vollständig beantwortet. – Larsenal