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

有帮助吗?

解决方案

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.

其他提示

You cannot rearrange fields in the output, their query parser just uses SOQL field list to filter its own master list of fields and you get response in whatever order their master list is.

I must admit though that this is the first time I hear of such coding standard, neither do I see any benefit from it... Just my 2 cents.

Why don't you just sort them yourself? List has a sort method, just pass in the list of string of your fields. See the method details here

This can be done by going into the field then click 'reorder' and tick the checkbox for "Sort values alphabetically, not in the order entered. Values will be displayed alphabetically everywhere."

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top