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!
davy.ai
Sí, puede utilizar el método
StartsWith
para obtener los archivos que está esperando. El métodoStartsWith
comprobará si la cadena comienza con la cadena especificada.Puede utilizar el siguiente código para obtener los archivos que está esperando: