SortedList портирование на Silverlight - PullRequest
3 голосов
/ 14 мая 2010

Похоже, SortedList исключен .. Что вы считаете наиболее подходящим из существующих коллекций? (чтобы сохранить тот же быстрый доступ и изменения)

Может ли словарь silverlight быть отсортирован навсегда?

С наилучшими пожеланиями VLK

Ответы [ 4 ]

2 голосов
/ 20 сентября 2010

Я перенес обе коллекции Wintellect Power и общие коллекции C5 в Silverlight. Я сделал их доступными здесь - http://jaykimble.net/powercollections-and-c5-collections-for-silverlight4.aspx.

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

0 голосов
/ 27 марта 2013

Мой обходной путь для отсутствия Silverlight - создать общий список с типом KeyValuePair и затем упорядочить список.

List<KeyValuePair<int, string>> sampleList = new List<KeyValuePair<int, string>>();

//Assuming you have a set of objects in an array or list
foreach(var item in items)
{
   sampleList.Add(new KeyValuePair<int, string>>(item.ID, item.Description))
}

sampleList = sampleList.OrderBy(data => data.Key).ToList();

Эффект такой же, как при использовании отсортированного списка.

0 голосов
/ 15 мая 2010

Вы можете взглянуть на Power Collections Wintellect . Эта библиотека бесплатна под EPL . Я думаю, что OrderedMultiDictionary поможет вам. Вы должны быть в состоянии скомпилировать это под Silverlight. Я не использовал это в течение нескольких лет, но использовал эту библиотеку (и библиотеку потоков Рихтера) для проекта WPF.

Edit:

После того, как вы поиграете с этим, похоже, что вам нужно будет немного поработать, чтобы наборы энергии работали в Silverlight.

0 голосов
/ 14 мая 2010

Чтобы ответить на ваш вопрос: Нет. Словарь не гарантирует заказанные товары по ключу.

Однако List<T> поддерживает метод BinarySearch. Это может помочь вам достичь аналогичных целей SortedList.

В документации есть хороший пример того, как это в основном достигается. См: -

List<T>.BinarySearch Method (T)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...