901. LengthとCountの違い


配列の要素数を取得する方法としてLengthプロパティとCountプロパティとCountメソッドがあります。

配列によってあるメンバーが違うはなぜでしょうか

img_0045

Linq用のCount()

C#には配列を便利に扱う機能としてLinqというものがあります。簡単に説明すると、C#の配列をSQL的な書き方でフィルターをかけたり処理したりするようにできるもの。

その中にあるものがCountメソッドです。

メソッドの説明としては、ただ単純に「配列の要素数を返す」というもの。

拡張メソッドなので基本的に配列にはCount()が出てきます。(ただしCountプロパティがある配列は除く。)

Linqによって処理した配列を除いて、ほぼ必ずLengthプロパティかCountプロパティがあるので、こちらのプロパティを使うとことはあまりないかな。

配列クラス向けのCountプロパティ

Countプロパティは配列クラス、または動的配列に存在するプロパティです。

プロパティの内容は要素の数を返す。というもの

配列変数向けのLengthプロパティ

こちらもCountプロパティと役割は全く同じ。

主に配列の変数など、動的ではない配列等によくみられます。

 まとめ

基本的に、Countプロパティ・Lengthプロパティがあるならそれを使うべきです。

Linqの時だけCountメソッドを使うようにしましょう。