Articles of linq

Rendimiento de Find () vs. FirstOrDefault ()

Pregunta similar: Find () frente a Where (). FirstOrDefault () Obtuve un resultado interesante al buscar a Diana dentro de una gran secuencia de un tipo de referencia simple que tiene una sola propiedad de cadena. using System; using System.Collections.Generic; using System.Linq; public class Customer{ public string Name {get;set;} } Stopwatch watch = new Stopwatch(); […]

Operador LIKE en LINQ

¿Hay alguna forma de comparar cadenas en una expresión C # LINQ similar al operador LIKE de SQL? Supongamos que tengo una lista de cuerdas. En esta lista, quiero buscar una cadena. En SQL, podría escribir: SELECT * FROM DischargePort WHERE PortName LIKE ‘%BALTIMORE%’ En lugar de lo anterior, la consulta quiere una syntax de […]

¿Enumeración de colecciones que no son inherentemente IEnumerable?

Cuando desee enumerar recursivamente un objeto jerárquico, seleccionando algunos elementos según algunos criterios, hay numerosos ejemplos de técnicas como “aplanamiento” y luego filtrado utilizando Linq: como los que se encuentran aquí: Texto del enlace Pero cuando enumera algo como la colección Controls de un Formulario, o la colección Nodos de un TreeView, no he podido […]

Lógica de clasificación personalizada en OrderBy using LINQ

¿Cuál sería la forma correcta de ordenar una lista de cadenas donde quiero que los elementos que comiencen con un guión bajo ‘_’ estén en la parte inferior de la lista, de lo contrario todo será alfabético. En este momento estoy haciendo algo como esto, autoList.OrderBy(a => a.StartsWith(“_”) ? “ZZZZZZ”+a : a )

¿Cómo esperar una lista de tareas de forma asincrónica utilizando LINQ?

Tengo una lista de tareas que he creado así: public async Task<IList> GetFoosAndDoSomethingAsync() { var foos = await GetFoosAsync(); var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList(); … } Al usar .ToList() , todas las tareas deberían comenzar. Ahora quiero esperar su finalización y devolver los resultados. Esto funciona en el bloque de arriba … […]

Directory.GetFiles de cierta extensión

¿Hay alguna forma de simplificar esta expresión de linq o hay una forma mejor de hacerlo? Directory.GetFiles(dir, “*.*”, SearchOption.AllDirectories) .Where(s => s.EndsWith(“.jpg”, StringComparison.OrdinalIgnoreCase) || s.EndsWith(“.gif”, StringComparison.OrdinalIgnoreCase) || s.EndsWith(“.png”, StringComparison.OrdinalIgnoreCase) || …); Básicamente quiero devolver todos los archivos de una cierta extensión. Desafortunadamente, este método no es muy flexible. Preferiría poder agregar extensiones a una lista […]

Clasificación de lista basada en otra lista

Tengo dos objetos de lista generics, en los que uno contiene los identificadores y los pedidos, y el otro un conjunto de identificadores con cada identificación en la segunda lista que tiene una referencia de id para la primera lista, por ejemplo; public class OptionType { public int ID { get; set; } public int […]

Cómo convertir resultados de linq a HashSet o HashedSet

Tengo una propiedad en una clase que es un ISet. Estoy tratando de obtener los resultados de una consulta linq en esa propiedad, pero no puedo encontrar la manera de hacerlo. Básicamente, buscando la última parte de esto: ISet foo = new HashedSet(); foo = (from x in bar.Items select x).SOMETHING; También podría hacer esto: […]

Calcula la diferencia del artículo anterior con LINQ

Estoy tratando de preparar datos para un gráfico usando LINQ. El problema que no puedo resolver es cómo calcular la “diferencia a la anterior”. el resultado que espero es ID = 1, Date = Now, DiffToPrev = 0; ID = 1, Fecha = Ahora + 1, DiffToPrev = 3; ID = 1, Date = Now […]

linq donde la lista contiene cualquiera en la lista

Usando linq, ¿cómo puedo recuperar una lista de elementos donde su lista de atributos coincide con otra lista? Tome este ejemplo simple y pseudo código: List listofGenres = new List() { “action”, “comedy” }); var movies = _db.Movies.Where(p => p.Genres.Any() in listofGenres);