Die Verwendung einer Liste als Vermittler ist der einfachste Weg, wie andere beschrieben haben, aber da Ihre Eingabe ein Array ist und Sie die Daten nicht einfach in einer Liste aufbewahren wollen, nehme ich an, dass Sie sich Sorgen um die Leistung machen könnten.
Die effizienteste Methode ist wahrscheinlich die Zuweisung eines neuen Arrays und dann die Verwendung von Array.Copy oder Array.CopyTo. Dies ist nicht schwer, wenn Sie nur ein Element am Ende der Liste hinzufügen möchten:
public static T[] Add<T>(this T[] target, T item)
{
if (target == null)
{
//TODO: Return null or throw ArgumentNullException;
}
T[] result = new T[target.Length + 1];
target.CopyTo(result, 0);
result[target.Length] = item;
return result;
}
Ich kann auch Code für eine Insert-Erweiterungsmethode posten, die einen Zielindex als Eingabe nimmt, falls gewünscht. Es ist ein wenig komplizierter und verwendet die statische Methode Array.Copy 1-2 mal.