Отвечая на ваш комментарий, опять же, я бы не советовал продвигать код ListClass.Вам было бы намного лучше использовать списки, встроенные в c #.
С другой стороны, если вы действительно намерены сделать это трудным путем (то есть, вероятно, неправильным путем), то кто я, чтобы остановитьты?
Два наиболее сложных способа сделать это - либо (а) объявить структуру, которая может содержать InventoryAmount или SoldAmount, либо (б) объявить массив как объект [] и использовать бокс c #.Оба подхода, скорее всего, бессмысленны с деловой точки зрения и также неэффективны.
Для первого подхода (a) просто объявите объединенную структуру, например, как это:
public struct InventoryAmountOrSoldAmount
{
public InventoryAmountOrSoldAmount( InventoryAmount ia => this.InventoryAmount = ia;
public InventoryAmountOrSoldAmount( SoldAmount sa => this.SoldAmount = sa;
public InventoryAmount { get;}
public SoldAmount { get;}
}
Затем просто используйте это как тип вашего массива:
private InventoryAmountOrSoldAmount[] listArr = new InventoryAmountOrSoldAmount[MAXELEMENTS];
Или вторым подходом (b) было бы объявить массив следующим образом:
private object[] listArr = new object[MAXELEMENTS];
Затем вы можете назначить каждому элементу массива либо InventoryAmount, либо SoldAmount.C # упакует структуру, поместив копию в кучу и поместив указатель на нее в элементе массива.