過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです.
画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.配列の要素数を取得する方法としてLengthプロパティとCountプロパティとCountメソッドがあります。
配列によってあるメンバーが違うはなぜでしょうか
Linq用のCount()
C#には配列を便利に扱う機能としてLinqというものがあります。簡単に説明すると、C#の配列をSQL的な書き方でフィルターをかけたり処理したりするようにできるもの。
その中にあるものがCountメソッドです。
メソッドの説明としては、ただ単純に「配列の要素数を返す」というもの。
拡張メソッドなので基本的に配列にはCount()が出てきます。(ただしCountプロパティがある配列は除く。)
Linqによって処理した配列を除いて、ほぼ必ずLengthプロパティかCountプロパティがあるので、こちらのプロパティを使うとことはあまりないかな。
int[] values = new int[] { 100, 200, 300 }; // Linqを使って配列にフィルター var res = from h in values where h >= 150 select h; foreach (var value in res) Console.WriteLine(value); Console.WriteLine(res.Count()); // 出力: // 200 // 300 // 2
配列クラス向けのCountプロパティ
Countプロパティは配列クラス、または動的配列に存在するプロパティです。
プロパティの内容は要素の数を返す。というもの
List<int> values = new List<int>(); values.Add(100); values.Add(200); values.Add(300); Console.WriteLine(values.Count);
配列変数向けのLengthプロパティ
こちらもCountプロパティと役割は全く同じ。
主に配列の変数など、動的ではない配列等によくみられます。
int[] values = new int[] { 100, 200, 300 }; Console.WriteLine(value.Length);
まとめ
基本的に、Countプロパティ・Lengthプロパティがあるならそれを使うべきです。
Linqの時だけCountメソッドを使うようにしましょう。