【C#・LINQ】Anyメソッドの概要と使い方について
C#でLINQのAnyメソッドについて紹介します。Anyメソッドとは、配列やリストに対して要素があるかのチェックや、指定した条件を満たす要素があるかどうかを判定する時に使用するメソッドです。
配列やリストの要素を調べることは頻度の多い処理なので、Anyメソッドを使用する機会も多いです。
- システム
エンジニア - C#で使用するLINQのAnyメソッドを使おうと思いましたが、使い方が分かりません……
- プロジェクト
リーダー - 配列やリストの要素を調べる際に使うのがAnyメソッドです。使い方を一緒に確認しましょう。
LINQのAnyメソッドとは?
Anyメソッドとは、配列やリストの要素を調べることができるメソッドです。使い方は2通りあります。
1つ目は、配列やリストに要素が含まれているか、含まれていないかを調べるものです。
配列やリストを取得する処理を記述する際などで、中身が空かどうかを判定するという処理は頻繁に使います。空かどうかを判定するには様々な方法がありますが、Anyメソッドによる判定は使いやすい処理といえます。
2つ目は、配列やリストに指定した条件を満たす要素が含まれているか調べるものです。
このように様々な条件を指定して、条件を満たす要素が含まれているかをチェックできます。
LINQのAnyメソッドの使い方
Anyメソッドの使い方を確認します。
要素の有無をチェックする
まず、配列やリストに要素が含まれているかをチェックするプログラムです。以下のコードでは日曜から土曜までの曜日を定義した配列を指定して、要素が含まれているかをチェックしています。
1
2
|
string[] dayOfTheWeeks = { "日", "月", "火", "水", "木", "金", "土" };
Console.WriteLine(dayOfTheWeeks.Any());
|
実行すると、以下の結果が出力されます。
Anyメソッドは下記のように配列やリストに対して、メソッドを呼び出します。
1
|
dayOfTheWeeks.Any()
|
上記の例では、配列に要素が含まれているので、結果はTrueになります。
続いて、要素が含まれていない場合の例です。
以下のコードでは、List型の変数を用意したが、要素が0個の状態となります。
1
2
|
List<string> stringList = new List<string>();
Console.WriteLine(stringList.Any());
|
実行すると、以下の結果になります。
上記の例では、リストに要素が含まれていないので結果はFalseです。
条件を満たす要素をチェックする
次は配列やリストに指定した条件を満たす要素が含まれているかをチェックするプログラムです。
以下のコードは、1月から12月まで、それぞれの月の日数を定義した配列に対して、指定した条件を満たす要素が含まれているかをチェックしています。
1
2
|
int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Console.WriteLine(days.Any(value => value == 28));
|
実行すると、以下の結果が出力されます。
Anyメソッドに引数を追加しました。
1
|
days.Any(value => value == 28)
|
このうち、「value == 28」の部分が条件です。
よって、上記のプログラムでは配列の中に値が28となっている要素があるかどうかをチェックしていますので、結果はTrueです。
続いて条件を変更してみます。
1
2
|
int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Console.WriteLine(days.Any(value => value <= 28));
|
実行すると、以下の結果になります。
このプログラムでは条件を「value <= 28」に変更しました。 このように、xx以上、xx以下であるかという条件も使用することができます。 [add_dialog_balloon 'SE' 'left' 'Anyメソッドは配列やリストの要素の有無を調べることができて便利なメソッドですね。'] [add_dialog_balloon 'PL' 'right' 'Anyメソッドは様々な条件で使用できるので、ぜひ使ってみてください。']
Anyメソッドは配列やリストの要素を調べるメソッド
Anyメソッドを使用して、配列やリストの要素の有無を調べることができました。 開発の場面で、配列やリストの中にどんな要素が入っているか調べる場面は多いので、今回のAnyメソッドの使い方をしっかり理解して、使ってみてください。
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万円東京都新宿区(西新宿駅)