Validar si un IEnumerable está vacío en C#

Al trabajar con IEnumerables es necesario saber si contiene datos para evitar algún error, para ello hay que validar si un IEnumerable está vacío en C#.

Hace un tiempo busqué una forma fácil de realizar la validación a partir de alguna función de .net, sin embargo, no encontré una manera rápida.

Entonces lo que pensé es recorrer el IEnumerable con un foreach para determinar si hay datos.

Para las pruebas tomare de ejemplo el código creado en el post anterior de consultas LINQ.

Validar IEnumerable

Vamos a crear un método en C# que reciba un parámetro de tipo IEnumerable:

public bool IsIENumerableLleno(IEnumerable<DataRow> ieNumerable)
{
    bool isFull = false;
    foreach (DataRow item in ieNumerable)
    {
        isFull = true;
        break;
    }
    return isFull;
}
  • El método devolverá un valor booleano (True o False).
  • Recibe un parámetro de tipo IEnumerable.
  • Se declara una variable de tipo bool llamada isFull inicializado en false.
  • Con un foreach recorremos el IEnumerable recibido.
  • Si el IEnumerable contiene datos entra al foreach y asigna a isFull el valor de True.
  • Con una sola entrada al foreach rompemos el ciclo con break.
  • Por último, regresamos el valor de isFull, True = lleno y False = vacío.

Con este método podemos validar si un IEnumerable está vacío o contiene datos, para posteriormente trabajar con él.

Podría interesarte Convertir un IEnumerable a DataTable en C#  

Ejemplo completo

Tenemos el siguiente IEnumerable:

IEnumerable<DataRow> ieRegistro = from fila in tablaUno.AsEnumerable()
                                where fila.Field<int>("Numero") == 1
                                select fila;

Validamos el resultado obtenido de la consulta LINQ, enviando el IEnumerable al método creado anteriormente.

bool isLleno = IsIENumerableLleno(ieRegistro);

El método creado nos devolverá el siguiente resultado:

Validar si un IEnumerable está vacío en C#

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *