Может быть, вы могли бы использовать структуру вместо класса для BoxData?
Структура - это тип значения: когда вы объявляете свой массив, все уже будет заполнено.Вы больше не будете использовать цикл для создания new BoxData()
экземпляров.
var x = new BoxData[3000,3000]; // Populated array of BoxData
Из-за ограничений struct vs class вам придется удалить инициализаторы следующим образом ...
struct BoxData
{
Size _bound;
bool _isFilled; // = false;
Color _color; // = Color.White;
public Size Bounds
{
get
{
return _bound;
}
set
{
_bound = value;
}
}
public bool IsFilled
{
get
{
return _isFilled;
}
set
{
_isFilled = value;
}
}
public Color FillColor
{
get
{
return _color;
}
set
{
_color = value;
}
}
}
... и инициализация значений по умолчанию с помощью цикла будет намного быстрее.
for (int j = 0; j < 3000; j++)
for (int i = 0; i < 3000; i++)
x[i, j].FillColor = Color.White;