Dado¿Hay una manera fácil de combinar dos secuencias ordenadas usando LINQ?
IEnumerable<T> first;
IEnumerable<T> second;
y que tanto first
y second
están clasificadas por un comparador Func<T, T, int>
que devuelve 0 por la igualdad, -1 cuando el primero es "más pequeño" y 1 cuando el segundo es "más pequeño".
¿Existe una forma sencilla de usar LINQ para unir las dos secuencias de forma que la secuencia resultante también sea ordenada por el mismo comparador?
Actualmente estamos usando un algoritmo hecho a mano que funciona, pero la legibilidad de una declaración directa de LINQ sería preferible.
posible duplicado de [algoritmo más eficiente para la fusión ordenados IEnumerable] (http://stackoverflow.com/questions/ 2767007/most-efficient-algorithm-for-merging-sorted-ienumerablet) –
Jon
¿Ha extraído su algoritmo hecho a mano en un método diferente? Esa sería la forma más sencilla de mejorar la legibilidad. – phoog
Si le gusta la legibilidad (sobre el rendimiento), entonces: 'var both = first.Union (second) .OrderBy (comparer);' –