MENU

【VB.NET】Array.Findメソッド

Visual Basic .NET(VB.NET)で配列を扱う際、特定の条件に合う要素を見つけたいことがよくあります。そんなときに便利なのがArray.Find<T>メソッドです。このメソッドを使えば、複雑なループを書かずに簡単に目的の要素を見つけることができます。

この記事では、Array.Find<T>メソッドの基本的な使い方から応用例まで、初心者の方にも分かりやすく解説します。

目次

Array.Find<T>メソッドの基本

Array.Find<T>メソッドは、指定された条件に最初に一致する要素を返します。条件はデリゲート(関数)として指定します。

基本的な使い方は次のとおりです:

Imports System

Module ArrayFindExample
    Sub Main()
        ' 整数の配列を作成
        Dim numbers() As Integer = {1, 3, 5, 7, 9, 11, 13, 15}

        ' 最初の偶数を見つける
        Dim evenNumber As Integer = Array.Find(numbers, Function(n) n Mod 2 = 0)

        If evenNumber <> 0 Then
            Console.WriteLine($"最初の偶数: {evenNumber}")
        Else
            Console.WriteLine("偶数が見つかりませんでした。")
        End If

        ' 10より大きい最初の数を見つける
        Dim largeNumber As Integer = Array.Find(numbers, Function(n) n > 10)

        If largeNumber <> 0 Then
            Console.WriteLine($"10より大きい最初の数: {largeNumber}")
        Else
            Console.WriteLine("10より大きい数が見つかりませんでした。")
        End If
    End Sub
End Module

このコードでは、Array.Findメソッドを使って2つの検索を行っています。1つ目は偶数を、2つ目は10より大きい数を探しています。

複雑なデータ型での使用例

Array.Find<T>は複雑なデータ型の配列でも使えます。次の例では、カスタムクラスの配列から特定の条件に合う要素を探します:

Imports System

Module ComplexArrayFindExample
    Class Student
        Public Property Name As String
        Public Property Age As Integer
        Public Property Grade As String

        Public Sub New(name As String, age As Integer, grade As String)
            Me.Name = name
            Me.Age = age
            Me.Grade = grade
        End Sub
    End Class

    Sub Main()
        ' 学生の配列を作成
        Dim students() As Student = {
            New Student("山田太郎", 15, "A"),
            New Student("佐藤花子", 16, "B"),
            New Student("鈴木一郎", 14, "A"),
            New Student("田中美咲", 15, "C")
        }

        ' 15歳以上でAグレードの最初の学生を見つける
        Dim highAchiever As Student = Array.Find(students, Function(s) s.Age >= 15 AndAlso s.Grade = "A")

        If highAchiever IsNot Nothing Then
            Console.WriteLine($"15歳以上でAグレードの学生: {highAchiever.Name}")
        Else
            Console.WriteLine("条件に合う学生が見つかりませんでした。")
        End If
    End Sub
End Module

この例では、Studentクラスのオブジェクトの配列から、15歳以上でグレードがAの最初の学生を探しています。

Array.Find<T>メソッドは、配列内の要素を効率的に検索するための強力なツールです。単純な値の検索から複雑な条件に基づく検索まで、幅広い用途に使えます。このメソッドを活用することで、VB.NETでのデータ処理がより簡潔で読みやすくなります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次