配列やリストにも欲しいメソッド

C#2.0あたりから文字列型には、IsNullOrEmptyというメソッドが実装された。
nullか空文字かを調べるためのメソッドなんだけど、意外に便利でよく使う。
文字列以外でも需要がありそうなのが、配列やリスト。欲しいっすよってんで実装してみた。

public static class Utils {

/// <summary>
/// 指定された配列やリストがnullあるいは要素数0の空かどうかを取得します。
/// </summary>
/// <typeparam name="TItem">アイテム要素の型宣言</typeparam>
/// <param name="list">リストや配列</param>
/// <returns>true:空あるいは要素数=0</returns>
public static bool IsNullOrEmpty<TItem>(IEnumerable<TItem> list) {
if (list == null) {
return true;
}

foreach (var item in list) {
return false;
}

return true;
}
}

LINQのCount()メソッドを使えなくもないけど、パフォーマンスを考えると、使わない方がいいかな。
こうすることで、お決まりのif文をメソッド1つで確認できる。

IList<int> list = ...;

if (!Utils.IsNullOrEmpty(list)) {
//...
}

int[] array = ...;

if (!Utils.IsNullOrEmpty(array)) {
//...
}

IEnumerable<>型にすることで、IList<>や配列にも対応できる。
IListやICollection、Array型なんかは受け付けないので、オーバーロードすれば、幅広く使えるかな。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 2 | トラックバック: 0


この記事へのコメント

No title
CountだとnullのときにArgumentNullExceptionですね。
パフォーマンス的な意味で言えば、Anyメソッドを使えば解決します。
ところで、TItem必要ですか?IEnumerableでよいかと思いました。
Re: No title
ジェネリックになっているのは、最初に作った頃の名残ですね。要らないといえばそうですが、外さずにおいてます。

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m