Коллекция для групп

1

Существует ли тип коллекции, который предназначен только для групп? Или это единственный вариант: List<IGrouping<Key, ItemType>>?

В принципе, я хочу делать словарные типы со списком, такие как GroupList.ContainsKey(key) и GroupList.TryGetItems(key, out items), плюс несколько связанных с группой вещей, таких как GroupList.AddToGroup(key, Item).

Да, я знаю, что могу написать их как методы расширения, но я не хочу изобретать велосипед, если есть что-то уже для групп.

Если нет, то я буду "сворачивать свои".

Теги:
.net-4.5

2 ответа

1
Лучший ответ

Если вы хотите группировать записи вашегоRecordType по вашему типу GroupingType и делать с ним "Словарь-вещи" - почему бы не SortedDictionary Dictionary или SortedDictionary?

Dictionary <yourGroupingType, List<yourRecordType > >

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

Если у вас действительно есть пары "ключ-значение", будет работать более простая структура, но я не вижу, где будет группироваться группа?

  • 0
    Это то, что я в итоге сделал.
1

Попробуйте KeyValuePair: http://msdn.microsoft.com/en-us/library/5tbh8a42(v=vs.110).aspx Они удивительно универсальны и значительно упрощают KV-связанные вещи. (для справки, я использовал их для реализации хэш-таблицы, которую мне пришлось писать для класса. Хеш против ключа и вытащить значение, и все готово.

Я рекомендую их список:

List<KeyValuePair<String, Int32>> things = new List<KeyValuePair<String, Int32>>();

Затем вы можете делать такие классные вещи, как (LINQ):

from x in things
where x.Key == "me me me!"
select x

Ещё вопросы

Сообщество Overcoder
Наверх
Меню