Any 拡張メソッドでシーケンスが空かどうかを確認する
(2017/03/07 20:06:27 created.)
(2017/03/07 20:18:30 modified.)
Any 拡張メソッドにはオーバーロードによって 2 つの機能があります。ここではそのうちの 1 つである空シーケンスの確認について紹介します。
Program.cs
namespace Tips_Linq
{
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var numbers = new int[] { 2, 3, 4, 5 };
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers));
var isBlank = !numbers.Any();
Console.WriteLine(isBlank ? "空です。" : "空ではありません。");
Console.ReadKey();
}
}
}
Any 拡張メソッドは指定されたシーケンスに要素があるかどうかを判定し、要素がある場合に true を返します。System.Linq では要素数を取得するための Count 拡張メソッドが用意されているため、こちらでも判定できますが、コレクションの要素数が多ければ多いほど処理速度は Any 拡張メソッドのほうが断然速いです。なぜなら、Any 拡張メソッドは先頭要素の有無によって即座に true/false を返すのに対し、Count 拡張メソッドは要素数分だけループしてカウント数をインクリメントする処理が走るからです。
配列なら Length プロパティ、List
Tweet