Это не работает, так как columnListToAddTo[columnListToAddTo.Length]
всегда будет возвращать 3 (длина объявленного вами массива).Поэтому:
- вы пытаетесь добавить каждый элемент с недопустимым индексом (3; допустимым будет 0..2)
- , даже если вы используете
Length-1
, вы всегдапоместите новый элемент в то же место массива (перезаписав ссылку на ранее добавленный элемент)
Кроме того, поскольку массив не может быть расширен (вам придется скопировать содержимое в новый, большиймассив), я бы также предложил использовать List<ColumnElementType>
или альтернативно ArrayList
(если вы не можете использовать дженерики).
Если вы все еще хотите использовать массив, вам следует расширить свой помощникметод для получения параметра индекса, где добавить новый элемент, например:
ColumnElementType[] columns = new ColumnElementType[3];
int index = 0;
columns.AddColumn(Constants.EmailColumnName, email, index++);
columns.AddColumn(Constants.FirstNameColumnName, firstName, index++);
columns.AddColumn(Constants.LastNameColumnName, lastName, index++);
//...
public static void AddColumn(..., int index)
{
// Add a new column to the column list
columnListToAddTo[index] = new ColumnElementType { ... };
}