Привет всем.
Можно ли как-то проинициализировать коллекцию (работаю с CollectionBase), в смысле создать в List некоторое количество пустых обжектов, естественно не создавая их в цикле, может быть можно создать обычный массив обжектов и потом конвертировать его.
Буду благодарен за любой совет и помощь.
Здравствуйте, Аноним, Вы писали:
А>Привет всем.
А>Можно ли как-то проинициализировать коллекцию (работаю с CollectionBase), в смысле создать в List некоторое количество пустых обжектов, естественно не создавая их в цикле, может быть можно создать обычный массив обжектов и потом конвертировать его.
А>Буду благодарен за любой совет и помощь.
Вам зачем? Больше всего похоже, что вас устроит такая преинициализация InnerList:
public class Lala : CollectionBase
{
public Lala()
: base(100)
{
}
}
При этом в InnerList резервируется место для указанного количества элементов, но сами они в InnerList не добавляются.
Здравствуйте, Аноним, Вы писали:
А>Привет всем.
А>Можно ли как-то проинициализировать коллекцию (работаю с CollectionBase), в смысле создать в List некоторое количество пустых обжектов, естественно не создавая их в цикле, может быть можно создать обычный массив обжектов и потом конвертировать его.
А>Буду благодарен за любой совет и помощь.
Может я неверно понял вопрос, но почему бы просто в конструкторе коллекции не сделать
class MyCollection : CollecionBase
{
public MyCollection(int initialCapacity)
{
InnerList.Capacity = initialCapacity;
}
}
либо
class MyCollection : CollecionBase
{
public MyCollection(int initialCapacity)
{
InnerList.AddRange(new object[initialCapacity]);
}
}
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, krasin, Вы писали:
А>Спасибо за ответ. Но предложенный вариант не рабочий, т.к у CollectionBase пустой конструктор.
У вас .net 1.1? В 2.0 появился
правильный конструктор