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;
}));
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:
Este código primero agrupa los datos por fecha utilizando el método
GroupBy
de Linq. Luego, para cada grupo, crea un nuevoContentOutputModel
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étodoToList
.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.