今回のテーマ
Contents
こんばんは、かっぱちゃんです。
C#のLinqの記事をVB版にしています。
今回は下記の記事の続きです。
CHECK
-
-
Visual Basic VBのLinqの使い方(メソッド構文)を解説。AverageメソッドとMaxメソッドとMinメソッドとSumメソッドの使い方を解説します。
今回のテーマContents1 今回のテーマ2 LinqのAvarage、Max、Min、Sumについて2.1 Avarage2.2 Max2.3 Min2.4 Sum3 Linqメソッドの解説の流れ ...
続きを見る
今回のテーマ
Linqのメソッド、CountとSequenceEqualとFirstOrDefaultメソッドついて解説します。
今回は上記の3つのメソッドについて解説します。

LinqのCount、SequenceEqual、FirstOrDefaultについて
Count
要素の数を返します。
SequenceEqual
二つの要素が全て一致している場合、trueを返します。一致していない場合、falseを返します。
FirstOrDefault
条件に一致する最初の要素を取得します。

C#のエンジニアであれば、絶対買ってほしい本2選
C#の初心者にオススメ!基本はこの本で抑えよう!
Linqの使い方が沢山載っている。中級者以上の方にオススメ!
Linqメソッドの解説の流れ
下記の流れで説明したいと思います。
行いたい処理の例を書きます。
Linqを使用しない書き方と使用する書き方のソースコードを書いていきます。
ソースコードには、配列を使います。
Countの使い方
Countの使い方について、例を書いていきます。

行いたい処理
2の個数を出力する。
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Imports System Imports System.Linq Module Program Sub Main(args As String()) Dim array = {1, 2, 5, 4, 3, 2, 2} Dim count As Integer = 0 For Each item In array If item = 2 Then count = count + 1 End If Next Console.WriteLine(count) End Sub End Module |
result
3
繰り返し文で2の数をカウントを行います。
続けてLinqを使用した例です。
Linqを使用する例
1 2 3 4 5 6 7 8 9 |
Imports System Imports System.Linq Module Program Sub Main(args As String()) Dim array = {1, 2, 5, 4, 3, 2, 2} Console.WriteLine(array.Count(Function(n) n = 2)) End Sub End Module |
result
3
今回の例も一行で完成です。
因みに下記のように指定すると、
1 |
array.Count() |
値は7が返ります。全要素の数を求めたい場合は、何も指定する必要はありません。
SequenceEqual
続けてSequenceEqualの使い方の例を見てみましょう。
行いたい処理
二つの配列の要素が全て一致していたら、「全て一致しています」と出力したい。
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Imports System Imports System.Linq Module Program Sub Main(args As String()) Dim array1 = {1, 2, 5, 4, 3, 2, 2} Dim array2 = {1, 2, 5, 4, 3, 2, 2} Dim equal As Boolean = True If Not (array1.Length = array2.Length) Then equal = False Else For i = 0 To array1.Length - 1 If Not (array1(i) = array2(i)) Then equal = False Exit For End If Next End If If equal Then Console.WriteLine("全て一致しています") End If End Sub End Module |
result
全て一致しています
配列が全て一致しているか判定する処理を書きました。
結構長くなってしまいますね。
次はLinqを使った例をみてみましょう。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 11 12 |
Imports System Imports System.Linq Module Program Sub Main(args As String()) Dim array1 = {1, 2, 5, 4, 3, 2, 2} Dim array2 = {1, 2, 5, 4, 3, 2, 2} If array1.SequenceEqual(array2) Then Console.WriteLine("全て一致しています") End If End Sub End Module |
result
全て一致しています
この処理も一行で実現できます。
SequenceEqualは他と比べて覚えにくいかもしれませんが、覚えておくとかなり便利な時があります。

FirstOrDefaultの使い方
次はFirstOrDefaultです。
行いたい処理
文字列の長さが3の最初の要素を取り出したい。
Linqを使用しない例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Imports System Imports System.Linq Module Program Sub Main(args As String()) Dim array1 = {"lion", "mouse", "cat", "dog", "fox", "bear"} Dim name As String = "" For Each item In array1 If item.Length = 3 Then name = item Exit For End If Next Console.WriteLine(name) End Sub End Module |
result
cat
文字列が3のcatを取り出しました。続けて、Linqを使ってみましょう。
Linqを使用する例
1 2 3 4 5 6 7 8 9 10 |
Imports System Imports System.Linq Module Program Sub Main(args As String()) Dim array1 = {"lion", "mouse", "cat", "dog", "fox", "bear"} Dim name As String = array1.FirstOrDefault(Function(n) n.Length = 3) Console.WriteLine(name) End Sub End Module |
result
cat
簡単に実装できますね。
ポイント
Linqのメソッドの中には、Firstメソッドも存在します。しかし、Firstの場合は、値が見つからない場合、InvalidOperationException例外が発生します。
FirstOrDefaultであれば、値が見つからない場合、nullを返してくれるので、基本的にこちらのメソッドを使うようにしましょう。
後ろから検索するLastOrDefaultも一緒に覚えましょう。
今回の例では、下記のように指定すると結果はfoxが返ります。
1 2 3 4 5 6 7 8 9 10 |
Imports System Imports System.Linq Module Program Sub Main(args As String()) Dim array1 = {"lion", "mouse", "cat", "dog", "fox", "bear"} Dim name As String = array1.LastOrDefault(Function(n) n.Length = 3) Console.WriteLine(name) End Sub End Module |
result
fox
まとめ
今回もLinqメソッドの紹介記事でした。今回の取り上げたメソッドを下記に纏めます。
今回のメソッド一覧
- Count
- SequenceEqual
- FirstOrDefault
- LastOrDefault
今回紹介したメソッドも使う頻度が高いので、この機会に覚えましょう。
最後まで見て頂きありがとうございました。

次回の記事はこちら
CHECK
-
-
Visual Basic VBのLinqの使い方(メソッド構文)を解説。TakeメソッドとSkipメソッドとTakeWhileメソッドとSkipWhileメソッドの使い方を解説します。
今回のテーマContents1 今回のテーマ2 Take、Skip、TakeWhile、SkipWhileについて2.1 Take2.2 Skip2.3 TakeWhile2.4 SkipWhile3 ...
続きを見る
プログラミング能力を上げたい方は是非オンラインのプログラミング教室も検討してみてくださいね!!
一人で独学をするよりもプロからオンラインでプログラミングを教えてもらった方が10倍は効率いいです!!
私が厳選したオススメのオンライン教室を貼っておきます!!どちら共、エンジニアとしての就職までサポートしてくれる素晴らしい教室です。キャリアなどの個別相談は無料ですよ!!
申し込みは完全無料!未経験でITエンジニアを目指したい方にオススメ!
Webエンジニアになりたい方にオススメ!個別相談は無料!
