OOP の観点からは、より良い方法は、Shahrooz Jefri が指摘したように Generic List を使用することです。カスタム クラスまたは構造体「Book」を作成します。これには、メンバー フィールド「string firstName」、「string lastName」、 「文字列タイトル」、および「年」。
次に、このように本のリストを作成します。
List<Book> books = new List<Book>();
books.Add(new Book("Jack","Reacher","Dollar",2005));
静的配列を使用して独自の汎用コレクションを実装する必要がある場合は、次のようにすることができます。
public class MyList<T> {
private T[] internalArray;
private int capacity;
private int size;
public int Size { get { return size; } }
public MyList(){
this.size = 0;
this.capacity = 2; //put something you feel like is reasonable for initial capacity
internalArray = new T[2];
}
public void Add(T item){
int factor = 2; //some "growth" factor
if(this.size == this.capacity){
this.capacity *= factor;
T[] newArray = new T[this.capacity];
System.Array.Copy(this.internalArray, newArray, this.size);
this.internalArray = newArray;
}
this.internalArray[this.size] = item;
this.size ++;
}
public void RemoveAt(int index){
//write code that shifts all elements following index back by one
//decrement the size
//if necessary for mem. conservation, shrink the array capacity if half of less elements remain
}
}
もちろん、アクセスのために [] ブラケット演算子をオーバーロードする必要があります。おそらく、Enumerable などを実装する必要があります。