es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Subcadena en la cláusula Where usando Linq

Estoy tratando de obtener los archivos cargados basados en un Id de tienda que se obtiene de una tabla usando Linq.
Así es como obtengo los archivos:

var uploadedFiles = Files.OrderByDescending(x => x.LastWriteTime)
.Select(x => new
{
Name = x.Name,
Date = Convert.ToDateTime(x.LastWriteTime).ToString(“MM/dd/yyyy”)
})
.Where(x => x.Name.Contains(StoreId.ToString()))
.ToList();

El formato del archivo “Name” es “12345678901212345”, donde StoreId es todo lo que está después del guión bajo (“_”).
Esta condición trae los archivos según el StoreId. Sin embargo, también trae más archivos de los que debería, porque busca cualquier coincidencia en el lado izquierdo del nombre del archivo también. Si cambio la condición a “Substring”, no recibo ningún resultado.

.Where(x => x.Name.Substring(0,13).Contains(StoreId.ToString()))
.ToList();

¿Hay algo que pueda hacer para obtener solo los resultados que espero?

¡Gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, puede utilizar el método StartsWith para obtener los archivos que está esperando. El método StartsWith comprobará si la cadena comienza con la cadena especificada.

    Puede utilizar el siguiente código para obtener los archivos que está esperando:

    var uploadedFiles = Files.OrderByDescending(x => x.LastWriteTime) 
                                                        .Select(x => new 
                                                        {
                                                            Name = x.Name,
                                                            Date = Convert.ToDateTime(x.LastWriteTime).ToString("MM/dd/yyyy")
                                                        }) 
                                                        .Where(x => x.Name 
                                                        .StartsWith(StoreId.ToString())) 
                                                        .ToList(); 
    

Comments are closed.