es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Contar ocurrencias de un evento por fecha con C#

Estoy enfrentando un problema al contar el número de ocurrencias por fecha en C#. ¿Debo usar Linq para filtrarlo? Por favor, avíseme. Gracias.

Fecha ID del jugador
1/1/2001 23
1/1/2001 29
1/1/2001 24
3/1/2001 22
3/1/2001 23

Mi resultado preferido debería ser

Fecha No. De Jugadores
1/1/2001 3
2/1/2001 0
3/1/2001 2

Este es mi código actual, ¿cómo puedo hacerlo dentro del select:

csharp
var convertTable = dataPageTable.AsEnumerable();
Records = new List<><contentoutputmodel>>(convertTable.Select(dr =>
{
var playerId = dr.GetColumn<long>("PlayerID").ToString();
var dateInt = dr.GetColumn<int>("Date").ToString();
var dateStr = dateInt.Substring(6, 2) + "/" + dateInt.Substring(4, 2) + "/" + dateInt.Substring(0, 4);
var output = new List<contentoutputmodel>(new ContentOutputModel[] {
new ContentOutputModel() { Text = dateStr },
new ContentOutputModel() { Text = playerId },
});
return output;
}));

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar Linq para filtrar y agrupar los datos por fecha, y luego contar el número de apariciones en cada grupo. Aquí tienes un ejemplo de fragmento de código que debería darte el resultado deseado:

    var convertTable = dataPageTable.AsEnumerable();
    Records = convertTable
        .GroupBy(dr => dr.GetColumn<int>("Date"))
        .Select(group => new List<contentoutputmodel> {
            new ContentOutputModel { Text = group.Key.ToString("d")},
            new ContentOutputModel { Text = group.Count().ToString()}
        })
        .ToList();
    

    Este código primero agrupa los datos por fecha utilizando el método GroupBy de Linq. Luego, para cada grupo, crea un nuevo ContentOutputModel que contiene la fecha como una cadena de texto y el conteo de elementos en ese grupo. Finalmente, convierte el resultado en una lista utilizando el método ToList.

    Ten en cuenta que esto asume que la columna Date en tu tabla de datos se almacena como un entero en el formato YYYYMMDD. Si se almacena en un formato diferente o como un tipo de fecha/hora, es posible que debas modificar el código en consecuencia.

Comments are closed.