List<T>は任意の型Tに型付けしたリストを作成できるため、TにList<T>を指定すれば入れ子になったリストList<List<T>>を作成することが出来ます。 例えば可変長のジャグ配列のようなものを作成したい場合は、Listを入れ子にすることで実現できます。 入れ子になったListを列挙する場合、例えばList<List<int>>を列挙すると、List<List<int>>に含まれているList<int>を一つずつ取り出せます。
次の例では、入れ子になったListを作成し、追加や削除・列挙などの操作を行っています。
上記の例では2段階に入れ子になったListを作成しましたが、必要ならばList<List<List<int>>>といった3段階以上に入れ子になったListを作成することも可能です。
このように、Listを入れ子にすることで可変長のジャグ配列と同様の構造を作成することができますが、一方Listでは可変長の多次元配列(矩形配列)の構造を単純に作成することはできません。 またそういったコレクションクラスも用意されていないため、独自に実装する必要があります。
関連: 多次元配列・ジャグ配列