Quiero ordenar por mis resultados con el recuento de coincidencias en mi línea de cadena.División de cadena con LINQ
Así que aquí es el código
.ThenByDescending(p => p.Title.ToLower()
.Split(' ')
.Count(w => words.Any(w.Contains)));
Pero tráeme error y dice que LINQ no puede analizar Split
en SQL.
LINQ to Entities no reconoce el 'System.String [] de Split (Char [])' método de método, y este método no puede ser traducido en una expresión tienda.
¿Cómo puedo implementar la división a través de LINQ?
Por ejemplo, para esta matriz debe ordenar de esta manera
words = { "a", "ab" }
ab a ggaaag gh //3 matches
ba ab ggt //2 matches
dd //0 matches
Pero eso causará la carga de todos los datos en la memoria y la realización de la transformación LINQ to Objects en su contra, ¿no? – abatishchev
sí, eso es cierto. De manera óptima, puede aplicar condiciones en where cláususe antes de llamar a 'AsEnumerable'. no puede hacerlo sin traer objetos a la memoria –
Supongo que se bloqueará con tablas grandes. Estoy de acuerdo con abatishchev. –