Check indien object al aanwezig is in collectielijst

Status
Niet open voor verdere reacties.

tuning4you

Gebruiker
Lid geworden
3 jun 2007
Berichten
328
Ik lees bij opstart van mijn applicatie functietitels uit via een database en schrijf deze weg in een collectie. Dit omdat de functietitels vaak worden aangeroepen en ik niet steeds een koppeling moet maken met de (misschien niet de juiste manier??).
Nu wou ik via een collectie opvragen indien een bepaalde functietitel al aanwezig is in de lijst. Onderstaande code heb ik hiervoor gebruikt. Hoewel ik weet dat "boekhouder" aanwezig is in de lijst, toch krijg ik steeds de melding dat dit niet het geval is.

Iemand een idee?
grtz,
Andy



Code:
Public Class Functie

    Private mFunctie As String = ""

    Public Property Functie() As String
        Get
            Return mFunctie
        End Get
        Set(ByVal value As String)
            mFunctie = value
        End Set
    End Property

    Public Sub New(ByVal functie As String)
        Me.Functie = functie
    End Sub

End Class

Public Class FunctieList

    Inherits System.Collections.Generic.List(Of Functie)

End Class

Code:
Dim mFunctie As New FunctieList mFunctie vul ik aan met gegevens uit een database.

Code:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

If mFunctie.Contains(New Functie("boekhouder")) Then
            MsgBox("Bestaat al in de collectie.")
        Else
            MsgBox("Kan toegevoegd worden.")
      End If

 End Sub
 
Laatst bewerkt door een moderator:
Je contains functie is onjuist. Je gaat nu controleren of er een nieuwe functie boekhouder voorkomt in je list, terwijl het een nieuwe functie is.

Je kan de volgende 2 oplossingen afhankelijk van je eigen voorkeur gebruiken:

Code:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

If mFunctie.Where(Function(c) c.Functie = "boekhouder").Count > 0 Then
            MsgBox("Bestaat al in de collectie.")
        Else
            MsgBox("Kan toegevoegd worden.")
      End If
 End Sub

of

Code:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim myFunctie = functies.FirstOrDefault(Function(c) c.Functie = "boekhouder")
If myFunctie IsNot Nothing Then
            MsgBox("Bestaat al in de collectie.")
        Else
            MsgBox("Kan toegevoegd worden.")
      End If
 End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan