Показать сообщение отдельно
Старый 13.09.2011, 13:50   #1  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Не корректная сортировка в Map-e и Set-е. AX2009 RU5
X++:
static void JobSortMap(Args _args)
{
    Map map = new Map(TYPES::String, TYPES::Real);
    MapIterator mit;
    ;
    
    map.insert('10', 0);
    map.insert('30', 0);
    map.insert('-10', 0);
    map.insert('-5', 0);
    map.insert('20', 0);
    map.insert('71', 0);
    map.insert('7-1', 0);
    map.insert('20-30', 0);
    
    mit = new MapIterator(map);
    while (mit.more())
    {
        info(mit.key());
        mit.next();
    }
}
Не давно заметили такую особенность, что при добавлении ключа типа String, который содержит в себе "тире" в Map, он не правильно его сортирует(размещает). Создается такое впечатление, что во время сортировки(размещения) в Map-e при добавлении таких вот записей он вообще "тире" не учитывает. Как будто выбрасывает, хотя ключ строит.
Результаты Job-a:
AX2009:
10
-10
20
20-30
30
-5
71
7-1
Axapta 3.0:
-10
-5
10
20
20-30
30
7-1
71
С Set-ами такая же хрень. Мне кажется в Axapta 3.0 сортировка более правильная.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
За это сообщение автора поблагодарили: alex55 (1), S.Kuskov (3).