46
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

C#で「Listがnullでない,かつ空でない」を短く書く

Last updated at Posted at 2019-01-05

「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))

これだとちょっとわかりにくいかもしれません.

46
32
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?