Есть ли список, который автоматически сортируется в .NET?

У меня есть коллекция слоев , где у них есть имена и цвета. Что я хочу сделать, так это отсортировать их сначала по цветам, а затем по их именам:

class Layer
{
    public string Name {get; set;}
    public LayerColor Color {get; set;}
}

enum LayerColor
{
    Red,
    Blue,
    Green
}

Примерно:

(red) layer2
(red) layer7
(blue) layer0
(blue) layer3
...

Я смотрел на SortedList, но он действует как Словарь, поэтому не позволяет дублировать элементы.

Также я использую API, в котором я получаю список слоев в порядке создания, поэтому мне нужно получить полный список слоев , чтобы отсортировать их так, как я хочу.

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

В конце концов Слои , которые я отсортировал, будут доступны примерно так:

class Image
{
    public MySortedList<Layer> Layers {get; set;}
}

Как лучше всего это сделать?

18
задан Joan Venge 19 April 2011 в 19:53
поделиться