Pregunta

Estoy tratando de que todos los campos en un objeto lleguen en un orden alfabético. He intentado usar Apex Explorer para obtener los campos, aunque la mayoría de los campos aparecen en un orden, hay pocos campos que no surgen en el orden correcto.

Obtener los nombres de campo en un orden en particular podría no afectar el funcionamiento del código, pero como parte de los estándares utilizados en nuestro proyecto, se espera que los usemos en orden alfabético.

Gracias Prady

¿Fue útil?

Solución

Esta receta funcionará:

List<Contact> contacts = [SELECT Name, Id FROM Contact ORDER BY Id LIMIT 10]; // We'll reorder by Name later
Map<String, Contact> contactMap = new Map<String, Contact>(); // Reversed for sorting
List<String> sortThis = new List<String>();

for(Contact c : contacts)
{
   contactMap.put(c.Name, c); // For simplicity in this example, we assume the name is unique
   sortThis.add(c.Name);
}

sortThis.sort(); // Sort by Name in this case    
List<Contact> nameSortedContacts = new List<Contact>();

for(String s : sortThis)
{
   nameSortedContacts.add(contactMap.get(s));
}

No he probado esto, pero parece preciso.

Otros consejos

No puede reorganizar los campos en la salida, su analizador de consultas solo usa la lista de campo SOQL para filtrar su propia lista maestra de campos y obtiene respuesta en cualquier orden que su lista maestra sea.

Sin embargo, debo admitir que esta es la primera vez que escucho sobre tal estándar de codificación, ni veo ningún beneficio de él ... solo mis 2 centavos.

¿Por qué no los clasificas tú mismo? La lista tiene un método de clasificación, simplemente pase en la lista de cadena de sus campos. Ver los detalles del método aquí

Esto se puede hacer al entrar en el campo y luego haga clic en 'reordenar' y marque la casilla de verificación para "clasificar los valores alfabéticamente, no en el orden ingresado. Los valores se mostrarán alfabéticamente en todas partes".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top