Я беру его, чтобы означать, что это способно к выражение идеи/алгоритмы/задачи легким для чтения и сжатым способом.
Обычно я связываю язык, являющийся выразительным с синтаксическим сахаром, хотя это не всегда имеет место. Примеры в C# его являющийся выразительным были бы:
foreach
(вместо того, чтобы явно писать повторение) using
оператор (вместо того, чтобы явно писать попытку/наконец) А другим примером были бы дженерики: прежде чем C# получил дженерики, Вы не могли выразить идеи "ArrayList
содержащий, только представляет в виде строки" в коде. (Вы могли зарегистрировать его, конечно, или записать Ваше собственное StringList
тип, но это - не совсем то же.)
При итерации по элементам в любом из двух элементы будут отсортированы. Не так с Dictionary
.
MSDN устраняет разницу между SortedList
и SortedDictionary
:
Общий класс SortedDictionary (TKey, TValue) представляет собой двоичный поиск tree с извлечением O (log n), где n - количество элементов в словарь. В этом отношении он похож на SortedList (TKey, TValue) универсальный класс. Эти два класса имеют похожие объектные модели, и оба имеют извлечение O (log n). Два класса отличаются друг от друга использование памяти и скорость вставки и удаления:
SortedList (TKey, TValue) использует меньше памяти, чем SortedDictionary (TKey, TValue).
SortedDictionary (TKey, TValue) имеет более быструю вставку и удаление операции для несортированных данных: O (log n) в отличие от O (n) для SortedList (TKey, TValue).
Если список заполняется сразу из отсортированных данных, SortedList (TKey, TValue) быстрее, чем SortedDictionary (TKey, TValue).
Когда вы хотите, чтобы коллекция была отсортирована по ключу при итерации по ней. Если вам не нужно сортировать данные, вам лучше использовать словарь, он будет иметь более высокую производительность.
SortedList и SortedDictionary в значительной степени делают то же самое, но реализованы по-разному, поэтому имеют разные здесь описаны сильные и слабые стороны .