В моем коде мне иногда нужно создавать большие коллекции объектов.Обратите внимание, что мне нужны коллекции, а не массивы, потому что, возможно, мне понадобится добавить элементы позже.
Какой эффективный способ сделать это?
Предположим, что объекты довольно просты исоздается быстро с конструктором по умолчанию без параметров.Примерно так:
class MyObject
{
private int a;
public int A
{
get { return a; }
set { a = value; }
}
}
Конечно, я могу создать свою коллекцию так:
List<MyObject> list = new List<MyObject>(knownNumberOfItems);
for (int i = 0; i < knownNumberOfItems; i++)
list.Add(new MyObject());
Но, может, есть лучший способ сделать то же самое?
Подведение итогов обсуждения:
- Нет более быстрого способа сделать это для ссылочных типов.Вы можете получить некоторые улучшения производительности, используя типы значений.
- Попробуйте выделить больше места на начальном этапе, чтобы уменьшить количество перераспределений при добавлении новых элементов позже.