[C#]Listの要素数のCount方法とは?要素数のカウント・CountとAny
![[C#]Listの要素数のCount方法とは?要素数のカウント・CountとAny](https://www.fenet.jp/dotnet/column/wp-content/uploads/2020/06/pixta_53635049_M-1024x682.jpg)
エンジニア
マネージャー
[C#]Listの要素数のCount方法とは?
今回は、C#でのListの要素数をカウントする方法について説明します。ここでは、要素数のカウント、条件に合った要素数のカウント、2次元Listのカウント、CountとAnyの使い分けについて紹介します。
C#でのListの要素数をカウントする方法に興味のある方はぜひご覧ください。
要素数のカウント
C#でのListの要素数をカウントする方法を紹介します。LINQのCountメソッド、および、ListのCountプロパティで要素数を取得できます。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System; using System.Linq; using System.Collections.Generic; public class Hello{ public static void Main(){ // 初期化 List<int> mylist = new List<int> { 2, 5, 3, 7, 8, 4, 1, 8, 9, 3, 0, 3 }; // Listの要素数(LINQのCountメソッド) Console.WriteLine(mylist.Count()); // 12 // Listの要素数(ListのCountプロパティ) Console.WriteLine(mylist.Count); // 12 } } |
実行結果は以下のようになります。
1 2 |
12 12 |
このようにC#では、LINQのCountメソッド、および、ListのCountプロパティで要素数を取得できます。
条件に合った個数
C#での、条件に合ったListの要素数をカウントする方法を紹介します。foreachでカウントする方法と、LINQでカウントする方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
using System; using System.Linq; using System.Collections.Generic; public class Hello{ public static void Main(){ // 初期化 List<int> mylist = new List<int> { 2, 5, 3, 7, 8, 4, 1, 8, 9, 3, 0, 3 }; // foreachでカウント int count = 0; foreach (var n in mylist){ if (n == 3){ count++; } } Console.WriteLine(count); // 3 // LINQでカウント(3の個数) Console.WriteLine(mylist.Count(n => n == 3)); // 3 // LINQでカウント(奇数) Console.WriteLine(mylist.Count(n => n % 2 == 1)); // 7 // LINQでカウント(偶数) Console.WriteLine(mylist.Count(n => n % 2 == 0)); // 5 } } |
実行結果は以下のようになります。LINQでカウントしたほうがシンプルに記載できます。
1 2 3 4 |
3 3 7 5 |
このようにC#では、条件に合ったListの要素数をカウントできます。
2次元List
C#での2次元Listの要素数をカウントする方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
using System; using System.Linq; using System.Collections.Generic; public class Hello{ public static void Main(){ // 1. ListのList List<List<int>> mylist = new List<List<int>>(){ new List<int> {1, 2, 3, 4}, new List<int> {5, 6, 7, 8, 9}, new List<int> {10, 11, 12, 13, 14, 15}, }; // listの個数 Console.WriteLine(mylist.Count()); // 3 Console.WriteLine(mylist[0].Count()); // 4 Console.WriteLine(mylist[1].Count()); // 5 Console.WriteLine(mylist[2].Count()); // 6 Console.WriteLine(""---------""); // Listなので、要素数は可変 List<int> addlist = new List<int> { 1, 2, 3, 4, 5, 6, 7 }; mylist.Add(addlist); Console.WriteLine(mylist.Count()); // 4 Console.WriteLine(mylist[3].Count()); // 7 Console.WriteLine(""---------""); // 2. Listの配列 List<int>[] mylist2 = new List<int>[3]; mylist2[0] = new List<int> { 1, 2, 3, 4 }; mylist2[1] = new List<int> { 1, 2, 3, 4, 5 }; mylist2[2] = new List<int> { 1, 2, 3, 4, 5, 6 }; // listの個数 Console.WriteLine(mylist2.Count()); // 3 Console.WriteLine(mylist2[0].Count()); // 4 Console.WriteLine(mylist2[1].Count()); // 5 Console.WriteLine(mylist2[2].Count()); // 6 } } |
実行結果は以下のようになります。ListのListや配列のListはインデックスでアクセスしてカウントを取得します。
1 2 3 4 5 6 7 8 9 10 11 12 |
3 4 5 6 --------- 4 7 --------- 3 4 5 6 |
ListのListは要素数は可変なので、Listを追加できます。Listの配列は要素数固定なので、要素数を超えてListを追加できません。
CountとAny
C#での、Listに要素が含まれているか確認するにはCountではなくAnyを使用したほうが良いです。Countは要素数をカウントするために、Listの最後まで確認します。Anyは要素が存在するか否かを確認するための関数なので、Listの最後まで確認しません。
そのため、Anyの方が高速に確認できます。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System; using System.Linq; using System.Collections.Generic; public class Hello{ public static void Main(){ // 初期化 List<int> mylist = new List<int> { 2, 5, 3, 7, 8, 4, 1, 8, 9, 3, 0, 3 }; // 要素の存在確認(Count) if(mylist.Count() > 0){ Console.WriteLine(""要素あり(Countで確認)""); } // 要素の存在確認(Any) if(mylist.Any()){ Console.WriteLine(""要素あり(Anyで確認)""); } } } |
実行結果は以下のようになります。
1 2 |
要素あり(Countで確認) 要素あり(Anyで確認) |
エンジニア
マネージャー
まとめ
いかがでしたでしょうか。C#でのListの要素数をカウントする方法について説明しました。ここでは、要素数のカウント、条件に合った要素数のカウント、2次元Listのカウント、CountとAnyの使い分けについて紹介しました。
ぜひご自身でC#のソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


C#新着案件New Job
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅)システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅)デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅)デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅)基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅)基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)