none
Utiliser un prédicat pour rechercher un élément d'un tableau RRS feed

  • Question

  • Bonjour,

    J'ai un tableau de structures (Dim ppTable() As xId) dont je souhaite trouver un élément qui égal à New xId(a,b,c). (cf. code ci-dessous)

    Question :  a,b,c sont des variables dont la valeur change, comment les transmettre en arguments à mon prédicat ?

     

    Private Structure xId  

           Dim no1 As Integer

           Dim no2 As Integer

           Dim no3 As Integer

    End Structure 

    index = System.Array.FindIndex(ppTable, AddressOf zIsEqual)

    Private Shared Function zIsEqual(ByVal itm As xId) As Boolean

              If itm.Equals(New xId(a,b,c)) Then

                       Return True

              Else

                       Return False

              End If

    End Function

    mardi 22 février 2011 11:38

Réponses

  • Bonjour,

    une façon simple de passer des arguments est d'utiliser une méthode anonyme pour prédicat :

    Sub Main()
    
      Dim a As Integer = 2
      Dim b As Integer = 2
      Dim c As Integer = 2
    
      Dim ppTable(2) As xId
      ppTable(0) = New xId(1, 1, 1)
      ppTable(1) = New xId(2, 2, 2)
      ppTable(2) = New xId(3, 3, 3)
    
      Dim index As Integer = System.Array.FindIndex(Of xId)(ppTable, Function(x) x.no1 = a And x.no2 = b And x.no3 = c)
    
      Console.WriteLine(index)
    
      Console.ReadLine()
    
    End Sub
    
    
    Sinon utilisez un wrapper. Voir exemple ici : Using Predicates with VB.Net Array

    Cordialement

     

     

    • Marqué comme réponse kyz lundi 28 février 2011 09:48
    vendredi 25 février 2011 13:34
    Modérateur

Toutes les réponses