Search code examples
salesforceapex-code

How do i get a list of fields in alphabetical order in SF


I am trying to get all the fields in an object to comeup in a alphabetical order. i have tried using apex explorer to get the fields, though most of the fields come up in an order, there are few fields which do not come up in the right order.

Getting the field names in a particular order might not affect the code working, but as a part of standards used in our project, it is expected that we use them in alphabetical order.

Thanks Prady


Solution

  • This recipe will work:

    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));
    }
    

    I haven't tested this but it looks accurate.