¿Cómo agregar datos de datos en la forma más eficiente? -- # campo con aggregate campo con calculator campo con aggregation campo con mathematical-optimization camp Relacionados El problema

How to aggregate data integer in most efficient way?


0
vote

problema

Español

Necesito agregar algunos valores de matriz de API en un trabajo de procesamiento de antecedentes en C #. El número de API puede ser infinito, pero probablemente nunca serán más de 10.

Las API devuelven una lista simple con UserID y el valor. Para usar los datos en mi solicitud, necesito sumar todos los valores para cada usuario distinto.

Ejemplo: datos de dos API:

de la API 1:

  [1, 240] (Note: The data is organized as [UserID, Value]) [2, 160] [3, 12568] [4, 1780] [...]   

de la API 2:

  [1, 10] [2, 10] [3, 10] [4, 10] [...]   

Resultado deseado:

  [1, 250] [2, 170] [3, 12578] [4, 1790] [...]   

¿Cómo puedo, de la manera más eficiente, haga esta lista deseada donde los valores para cada usuario se hayan agregado entre sí?

He estado mirando las matrices que parecen ser una forma de una manera, pero no puedo descubrir cómo hacer valores agregar sin agregar los medios de usuario entre sí?

(Me doy cuenta de que se puede resolver con algunos bucles anidados, pero estoy buscando una mejor manera);

NOTA: Los ID de usuario no son secuenciales.

Original en ingles

I need to aggregate some array values from APIs in a background processing job in c#. The number of APIs can in theory be infinite but will probably never be more than 10.

The APIs return a simple list with UserID and Value. To use the data in my application I need to sum all values for each distinct UserID.

Example-data from two APIs:

From API 1:

[1, 240] (Note: The data is organized as [UserID, Value]) [2, 160] [3, 12568] [4, 1780] [...] 

From API 2:

[1, 10] [2, 10] [3, 10] [4, 10] [...] 

Desired result:

[1, 250] [2, 170] [3, 12578] [4, 1790] [...] 

How do I, in the most efficient way make this one desired list where the values for each UserID has been added to each other?

I've been looking at Matrixes which seems to be a way but I can't figure out how to do add values without also adding the UserIDs to each other?

(I realize it can be solved with some nested loops but I'm looking for a better way);

Note: The UserID's are not sequential.

              
         
         

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Uso de Dictionary<int,int> será probablemente más rápido que cualquier cosa que pueda cocinar de otra manera, incluso con la búsqueda de si UserID ya está contenida como clave.

IE:

  var results = Dictionary<int,int>(); foreach (var api in apis)     foreach(var value in api.GetValues())         if (!result.HasKey(value.UserID))             result[value.UserId] = value.Value;         else             result[value.UserId] += value.Value;   
 

Using Dictionary<int,int> will probably be faster than anything you can cook up in any other way, even with lookup of whether UserId is already contained as key.

ie:

var results = Dictionary<int,int>(); foreach (var api in apis)     foreach(var value in api.GetValues())         if (!result.HasKey(value.UserID))             result[value.UserId] = value.Value;         else             result[value.UserId] += value.Value; 
 
 
 
 

Relacionados problema

8  Predecir el número de dígitos de una multiplicación  ( Predicting the number of digits of a multiplication ) 
Necesito encontrar el número de dígitos de multiplicaciones muy grandes (aproximadamente 300 dígitos cada una). Me preguntaba si hay un truco para predecir el...

3  ¿Por qué IPOPT evalúa la función objetiva a pesar de las restricciones de violación?  ( Why does ipopt evaluate objective function despite breaching constraints ) 
Estoy usando IPOPT dentro de Julia. Mi función objetiva arrojará un error para ciertos valores de parámetros (específicamente, aunque asumo que esto no import...

23  Conecte los nodos para maximizar el peso total del borde  ( Connect nodes to maximize total edge weight ) 
Estoy trabajando en un problema que podría reducirse a un problema de optimización de gráficos a continuación. Se da un conjunto de nodos de colores. Todo...

36  Algoritmos de embalaje del contenedor 3 dimensional  ( 3 dimensional bin packing algorithms ) 
Me enfrenté a un problema de embalaje de contenedores tridimensionales y actualmente estoy realizando algunas investigaciones preliminares sobre qué algoritmo...

15  Biblioteca de optimización matemática para Java - ¿Recomendaciones de código abierto o de código abierto? [cerrado]  ( Mathematical optimization library for java free or open source recommendatio ) 
Según lo que actualmente representa, esta pregunta no es un buen ajuste para nuestro Q & Amp; un formato. Esperamos que las...

10  Uso de CUDA para resolver un sistema de ecuaciones en la moda de mínimos cuadrados no lineales  ( Using cuda to solve a system of equations in non linear least squares fashion ) 
Uso de CUDA, me gustaría resolver un sistema de ecuaciones con un solucionador de mínimos cuadrados no lineales. Estos métodos se discuten en un excelente fol...

3  Suppinando un Hessian a FMIN_NCG en Python  ( Suppyling a hessian to fmin ncg in python ) 
Para la función de escisión fmin_ncg , ¿existe una forma de suplir el Hessian y el gradiente como una variable en lugar de una función? Estoy tratando de r...

1  ¿Cómo encontrar un conjunto de elementos de un tamaño específico que incluya los mayores conjuntos posibles en una colección de conjuntos?  ( How to find a set of elements of a specific size that include the greatest possi ) 
Dada una familia de conjuntos finitos con cardinalidades entre 1 y 6, que ellos mismos son subconjuntos de un conjunto finito más grande de posibles elementos...

1  GREEDY BEST FIRT FIRT - BOOPS (ejemplo de Rumania)  ( Greedy best first search loops romania example ) 
Estaba leyendo cierta literatura con respecto a la mejor búsqueda codiciosa que encontré muchas veces la hoja de ruta de Rumania como una aplicación de ejempl...

2  Multiset de conjuntos - Eligiendo los elementos que cubren la mayoría de los conjuntos  ( Multiset of sets choosing the elements which cover the most sets ) 
Dado un multiset de conjuntos m , por ejemplo: M = ({a}, {a}, {b}, {c}, {c}, {c}, {a,b}, {a,b}, {a,c}, {a,b,c}, {d, e}) Quiero elegir el conjunto de el...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos