読者です 読者をやめる 読者になる 読者になる

替え玉バリカタでお願いします

お仕事と、お仕事そうでお仕事じゃない、少しお仕事な備忘など。

Linq使えるなら Count() > 0 とかやっちゃダメ!ぜったい

C# Linq

色々なプロジェクトで以下のようなコードを見かけます。

var collection = Manager.GetAll();
if (collection.Count() > 0)
{
    //collectionを使った処理をする
}

でもコレ、実はCount()の中で要素数を本当にカウントしてるので、
要素が多ければ多いほどカウントに時間を要します。

そんな訳でLinqを使える環境であれば、

var collection = Manager.GetAll();
if (collection.Any())
{
    //collectionを使った処理をする
}

と書いたほうが素敵。

要素数が1万件あった場合、Count()は1万件あることを確認するが、Any()は1件目でtrueが返ってくるのです。
逆も然りで、!collection.Any()とやれば、collection.Count() == 0よりも効率が良い。