抽象クラス Super を継承した Sub クラスがあります。
Sub.All プロパティで Sub.OneSub.Two のインスタンスを取得したいです。

abstract class Super<T> where T : Super<T>
{
    private readonly int value;
    private static List<T> list = new List<T>();

    public static List<T> All { get { return list; } }

    protected Super(int value)
    {
        this.value = value;
        list.Add((T)this);
    }
}

class Sub : Super<Sub>
{
    public static Sub One = new Sub(1);
    public static Sub Two = new Sub(2);

    private Sub(int value)
        : base(value)
    {
    }
}

次のようにすれば Sub の静的コンストラクタが実行されるので、実現できることは理解しています。1 行目がない場合でも実現できる方法が知りたいです。

var instance = Sub.One; // これがなくても実現してほしい
var all = Sub.All; // Sub.One と Sub.Two のインスタンスが格納されていてほしい