Estoy comprobando el parámetro de clasificación y la construcción de un montón de if
declaraciones:¿Cómo puedo mejorar este código de clasificación?
if (sortDirection == "ASC")
{
if (sortBy == "Id")
return customerList.OrderBy(x => x.Id).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "FirstName")
return customerList.OrderBy(x => x.FirstName).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "City")
return customerList.OrderBy(x => x.City).Skip(startIndex).Take(pageSize).ToList();
}
else
{
if (sortBy == "Id")
return customerList.OrderByDescending(x => x.Id).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "FirstName")
return customerList.OrderByDescending(x => x.FirstName).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "City")
return customerList.OrderByDescending(x => x.City).Skip(startIndex).Take(pageSize).ToList();
}
¿Cómo puedo hacer esto mejor?
Definir "mejor". Mejor para que? – Oded
¿De qué manera quieres "mejorarlo"? ¿No funciona como se esperaba? ¿Es muy lento? ¿No te gusta cómo está estructurado el código? Necesitamos más información aquí. –
Lo recomendaría usando la composición LINQ. Consulte http://stackoverflow.com/questions/5881107/how-can-i-build-entity-framework-queries-dynamically/5882243#5882243 – Euphoric