Как получить список полей в алфавитном порядке в SF

Я пытаюсь получить все поля объекта в алфавитном порядке. я пытался использовать apex explorer, чтобы получить поля, хотя большинство полей появляются в порядке, есть несколько полей, которые не появляются в правильном порядке.

Получение имен полей в определенном порядке может не повлиять на работу кода, но как часть стандартов, используемых в нашем проекте, ожидается, что мы будем использовать их в алфавитном порядке.

Спасибо, Прэди.


person Prady    schedule 20.02.2012    source источник


Ответы (4)


Этот рецепт будет работать:

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

Я не проверял это, но это выглядит точно.

person Adam    schedule 23.02.2012
comment
Интересно, почему я получил отрицательную оценку, когда понял, что не попал в цель самого вопроса! Я думал о упорядочении результатов по столбцам, а не о упорядочении полей в метаданных. Тем не менее, рецепт будет работать и с описанием информации. - person Adam; 31.05.2012

Вы не можете переупорядочивать поля в выводе, их анализатор запросов просто использует список полей SOQL для фильтрации своего собственного основного списка полей, и вы получаете ответ в любом порядке, в котором находится их основной список.

Должен признать, однако, что я впервые слышу о таком стандарте кодирования и не вижу в нем никакой пользы... Просто мои 2 цента.

person mmix    schedule 20.02.2012
comment
Должен признаться, сам ничего подобного не делал... Новая команда, новые стандарты - person Prady; 21.02.2012

Почему бы вам просто не отсортировать их самостоятельно? Список имеет метод сортировки, просто передайте список строк ваших полей. Подробнее о методе см. здесь

person manubkk    schedule 21.02.2012
comment
Как это будет сортировать поля в выводе? - person mmix; 21.02.2012
comment
Каков ваш результат? визуальная сила? - person manubkk; 21.02.2012

Это можно сделать, зайдя в поле, затем нажмите «Изменить порядок» и установите флажок «Сортировать значения по алфавиту, а не в порядке ввода. Значения будут отображаться везде в алфавитном порядке».

person vaibhav    schedule 30.07.2013