2010-08-22 27 views
1

Comment puis-je vérifier un nouveau KeyValuePair par rapport à une liste existante de KeyValuePair? Je veux comparer pour une condition pour inclure ou exclure l'article. J'utilise vb.net 3,5Vérifiez keyvaluepair contre les valeurs existantes dans la liste de keyvaluepair

il est imbriqué Pour boucle et je suis un datarow sur la suppression de résultat de la condition

args = (existing list of KeyValuePAir) 
For Each datarow As DataRow In ds.Tables(0).Rows 
Dim args2 As KeyValuePair(Of Integer, Integer) = New KeyValuePair(Of Integer, Integer)(datarow.Item("Integer1"), datarow.Item("Integer2")) 

ce que je veux faire ici est de voir si args2 est déjà dans args sinon je supprimeraient le datarow, mais je dois aussi rechercher le datarow plusieurs fois

Répondre

0

Try

For Each pair As KeyValuePair In pairs 
    If pair.Key == myPair.Key And pair.Value == myPair.Value Then 
     'Do stuff 
    End If 
Next 

Je ne sais pas si vous avez besoin d'écrire un meilleur contrôle de l'égalité

+0

Ce n'est pas très efficace. Si vous connaissez déjà la clé, tout ce que vous devez faire est de rechercher la valeur de celle-ci, le cas échéant, et de voir si elle correspond à la valeur que vous avez déjà hissé. –

+0

Vrai, pour une raison quelconque, j'ai traité comme une liste de keyvaluepairs au lieu d'un dictionnaire, il suffit d'obtenir la valeur de la clé particulière et de vérifier votre propre valeur. – Raynos

+0

Merci, j'ai ajouté plus à la question car j'ai besoin de supprimer un datarow mais j'ai aussi besoin de le chercher plusieurs fois. ? –

0

j'ai pu le résoudre en vérifiant avec

If Not args.Contains(args2) Then 
         datarow.Delete() 


     ds.AcceptChanges()