Enum.GetNames () resulta em uma ordem inesperada com constantes de enum negativas

Tenho a seguinte definição de enumeração (em C #):

public enum ELogLevel
{
    General = -1,  // Should only be used in drop-down box in Merlinia Administrator log settings
    All = 0,       // Should not be used as a level, only as a threshold, effectively same as Trace
    Trace = 1,
    Debug = 2,
    Info = 3,
    Warn = 4,
    Error = 5,
    Fatal = 6,
    Off = 7        // Should not be used as a level, only as a threshold
}

Agora, quando eu faço umEnum.GetNames() nesse tipo, recebo uma matriz de strings com 9 elementos conforme o esperado, mas a ordem é All, Trace, ..., Off, General, que não é o que eu estava esperand

Aqui está o MSDNdocumentaçã paraEnum.GetNames():

"Comentários: Os elementos da matriz de valor retornado são classificados pelos valores das constantes enumeradas."

O que está acontecendo aqui? Posso mudar meu programa para levar em conta essa "funcionalidade", mas gostaria de saber por que o .NET está fazendo o que está fazendo.

questionAnswers(2)

yourAnswerToTheQuestion