Tengo una tabla de datos, dtFoo, y me gustaría obtener un recuento de las filas que cumplen con ciertos criterios.Obteniendo un recuento de filas en una tabla de datos que cumple con ciertos criterios
EDITAR: Estos datos no se almacenan en una base de datos, por lo que usar SQL no es una opción.
En el pasado, he usado los dos métodos siguientes para hacerlo:
Método 1
int numberOfRecords = 0;
DataRow[] rows;
rows = dtFoo.Select("IsActive = 'Y'");
numberOfRecords = rows.Length;
Console.WriteLine("Count: " + numberOfRecords.ToString());
Método 2
int numberOfRecords = 0;
foreach (DataRow row in dtFoo.Rows)
{
if (row["IsActive"].ToString() == "Y")
{
numberOfRecords++;
}
}
Console.WriteLine("Count: " + numberOfRecords.ToString());
Mi tienda está tratando para estandarizar en algunas cosas y este es un problema que ha surgido. Me pregunto cuál de estos métodos es el mejor en términos de rendimiento (¡y por qué!), Así como cuál es el más comúnmente utilizado.
Además, ¿hay mejores formas de lograr los resultados deseados?
Excelente solución, ¿podría decirme alguna fuente donde pueda ver muchos ejemplos de LINQ? –
@Saluce, dtFoo.AsEnumerable(). Donde (expr) no es necesario convertir a enumerable ya que podemos usar dtFoo.Where (expr) también es enumerable –
@Sunny_Sid Eso no es correcto. Tienes que convertir explícitamente a 'Enumerable' para usar el' Enumerable.Where'. – saluce