Mi OM tiene un objeto 'producto'.
Cada producto tiene una 'identificación del fabricante' (propiedad, número entero).
Cuando tengo una lista de productos para mostrar, los tres primeros se muestran como los "productos presentados".
La lista ya está ordenada en un orden de clasificación específico, colocando los productos 'destacados' en primer lugar en la lista.Clasificación LINQ: los tres primeros deben ser fabricantes diferentes
Sin embargo, ahora debo asegurarme de que los productos presentados en el listado son de diferentes fabricantes. Quiero tener un método para llamar para hacer esta nueva clasificación. Tratando de utilizar LINQ a la consulta de los 'productos' de entrada y el 'resultados'
public List<Product> SetFeatures(List<Product> products, int numberOfFeatures)
{
List<Product> result;
// ensure the 2nd product is different manufacturer than the first ....
// ensure the 3rd product is a different manufacturer than the first two...
// ... etc ... for the numberOfFeatures
return result;
}
Gracias de antemano.
Aclaración:
La lista original está en un orden específico: el 'mejor vendido', el más alto primero (orden descendente). La lista resultante debe permanecer en este orden, con la excepción de ajustar o mover los elementos 'hacia arriba' para que los diferentes fabricantes se vean las principales características de n.
Si el primer n (numberOfFeatures) de los artículos tiene fabricantes diferentes, entonces el listado no necesita ser alterado en absoluto.
p. Si numberOfFeatures = 3
Producto 1 - Fabricante A (primera función)
Producto 2 - Fabricante B (segunda función)
Producto 3 - Fabricante C (tercera función)
Producto 4 - Fabricante A (... Sin marcar ...)
Producto 5 - Fabricante A (... no verificado ...)
Por ej. Caso para ajustar ... por ejemplo ... ENTRADA Lista
Producto 1 - Fabricante Un
Producto 2 - Fabricante Un
Producto 3 - Fabricante B
Producto 4 - Fabricante Un
Producto 5 - Fabricante F
(... nos gustaría ...)
Producto 1 - Fabricante A (primera función)
Producto 3 - Fabricante B (segunda función ... mueve hacia arriba)
Producto 5 - Fabricante F (tercera función. .. movido hacia arriba)
Prod UCT 2 - Fabricante A (... empuja hacia abajo la lista ...)
Producto 4 - Fabricante A (... empuja hacia abajo la lista ...)
Anthony, gracias. Esto parece haberme llevado a donde tengo que estar. Voy a hacer un poco más de pruebas a/b, pero se ve bien hasta ahora. gracias – Rob
Existen algunos buenos procesos de pensamiento en cada una de estas respuestas. Me alegra contribuir con ellos. –
+1 enfoque interesante. Se lee bien. Optimicé para la menor cantidad de iteraciones y comparaciones, lo que me llevó a pensar en cosas a nivel de comparación individual. Su enfoque enmarca la solución como una consulta, que es posiblemente más clara y vale la pena el costo O (3N). –