C#でnullチェックを省略-Collection編
当然ですが、以下のソースは例外で落ちます。
public static void Main(string[] args) { List<string> nullList = null; foreach (string str in nullList) // ここで落ちる { Console.WriteLine(str); } }
ifでnullチェックとか、nullの場合は空リストで初期化するとか方法はありますが、
以下のような拡張メソッドを定義して、
nullチェックを省略してしまうとシンプルでよさげです。
拡張メソッド
public static IEnumerable<T> CollectionOrEmpty<T>(this IEnumerable<T> collection) { return collection ?? Enumerable.Empty<T>(); }
使い方
public static void Main(string[] args) { List<string> nullList = null; foreach (string str in nullList.CollectionOrEmpty()) { Console.WriteLine(str); } }