автоматически расширяется массив в .NET? - PullRequest
2 голосов
/ 26 февраля 2010

Есть ли в .NET что-то похожее на массивы Perl, которые индексируются численно, но автоматически расширяются по мере необходимости? Это будет работать так:

var x = new DreamArray<string>();

x[6] = "foo";  // x automatically has 7 elements
x[10] = "bar"; // now it has 11

Ответы [ 5 ]

7 голосов
/ 26 февраля 2010

Используйте List<string> вместо массива. Вам нужно будет позвонить List.Add("item"), чтобы добавить в список.

4 голосов
/ 26 февраля 2010

Нет, но его можно легко эмулировать с помощью:

class MagicArray<T> : Dictionary<int, T> {}
1 голос
/ 26 февраля 2010

Вы можете легко написать свой собственный. Вам потребуется реализовать интерфейс ICollection, а затем объединить стандартный список и т. Д. Но в свойстве индексатора, если индекс больше, чем Capacity, просто измените свойство Capacity на соответствующий размер.

1 голос
/ 26 февраля 2010

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

См. Коллекции C # для использования, примеров и других идей

0 голосов
/ 26 февраля 2010

Списки будут самыми близкими. Просто используйте List ()

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