Depois de mais um longo período de inatividade, segue mais um post relâmpago, mas de grande utilidade.
Me deparei hoje com a necessidade de remover todas as linhas em brano de um DataTable.
Esperava que existisse um método mais sugestivo para isso. Algo como "IgnoreEmptyRows" ou "RemoveEmptyRows". Mas seria fácil demais, né? :)
A solução até que é simples, mas não tão sugestiva.
Vamos ao código:
MeuDataTable = MeuDataTable.Rows.Cast<DataRow>().Where(row => !row.ItemArray.All(field => field is System.DBNull || string.Compare((field as string).Trim(), string.Empty) == 0)).CopyToDataTable();
Simples, não? Mas, certamente, não tão fácil de lembrar quanto um simples "RemoveEmptyRows" :)
Minha sugestão é criar o seu próprio RemoveEmptyRows:
public DataTable RemoveEmptyRows (DataTable MeuDataTable)
{
MeuDataTable = MeuDataTable.Rows.Cast<DataRow>().Where(row => !row.ItemArray.All(field => field is System.DBNull || string.Compare((field as string).Trim(), string.Empty) == 0)).CopyToDataTable();
return MeuDataTable ;
}
Um abraço e até a próxima!!