次のコードを実行しようとしていますが、myObject が != null の場合は正常に動作しますが、myObject が null の場合は「値を null にすることはできません」というエラーがスローされます。理想的には、myObject が null の場合、HashSet に単一の値 0 を持たせたいと思います。
var ids = new HashSet<int>(myObject.Select(p => p.ID));
私はいくつかの異なることを試しました。なぜこれがうまくいくと思ったのかわかりません。
var ids = new HashSet<int>(myObject.Select(p => p.ID).Where(p => p != null));
そして、これはうまくいくように見えました。
var ids = new HashSet<int>(myObject.Select(p => (p == null) ? 0 : p.ID));
最終的にはこれでうまくいきましたが、もっと良い方法が必要なようです。
var ids = new HashSet<int>(myObject!= null ? myObject.Select(p => p.ID) : new int[] {0});
誰にもこれを行うためのより良い方法がありますか?