質問はLINQとは何の関係もなく、一般的な分散とは何の関係もなく、コレクション初期化子とオブジェクト初期化子を備えているため、質問はやや混乱しています。本当の問題は、私が知る限り、「オブジェクト作成式の外でコレクション初期化子を使用することがなぜ合法ではないのか?」ということです。
ここでの関連する設計原則は、一般に、オブジェクトを作成および初期化する操作では、ここでオブジェクトの作成が行われていることを読者に知らせるために、どこかに "new" という単語を含める必要があるということです。(はい、C# のこの規則にはいくつかの例外があります。読者の演習として、それらすべてに名前を付けることができるかどうかを確認してください。)
自分のやり方で物事を行うと、コードについての推論が難しくなります。クイック、これは何をしますか?
d = new List<int>() { 10, 20, 30 };
d = { 40, 50, 60 };
2 行目は既存のリストに 40、50、60 を追加しますか? それとも、古いリストを新しいものに置き換えますか? そこには「新しい」というものがないので、読者は新しいオブジェクトが作成されたと期待していますか?
あなたが言う時
q = new Whatever() { MyList = { 40, 50, 60 } };
新しいリストを作成しません。コンストラクターによって割り当てられた既存のリストに 40、50、60 を追加します。したがって、提案された構文は、新しいリストが作成されるかどうかに関してあいまいで混乱します。
提案された機能は紛らわしく、不必要であるため、すぐに実装される可能性は低い.