「Listがnullでない,かつ空でない」かどうかを判定したい場面は多いと思います.
そのまま書くとこんな感じ.
if (list != null && list.Count > 0)
非常にわかりやすいのですが,List名を2回書かないといけないので長くなりがちです.
こんな風に.
if (juniorHighSchool.Students != null && juniorHighSchool.Students.Count > 0)
こちらのサイトのように拡張メソッドを作る方法もありますが,毎回プロジェクトごとに作るのは面倒です.
そこで,null条件演算子を使うと以下のように書けます.
if (list?.Count > 0)
listがnullの場合null > 0が評価され,これはfalseになります(Microsoft Docs).listがnullでないけど空の場合,list.Count > 0が評価されてfalseになります.よって,Listがnullでない,かつ空でない場合のみtrueになります.
これならList名を1回しか書かないのですっきりします.
なお,この条件の否定(nullまたは空である)は以下のように全体を()で囲まないといけません.
if (!(list?.Count > 0))
これだとちょっとわかりにくいかもしれません.