2009-06-16 5 views
0

Je code suivant dans VS2008Comment le port ce Linq à VS 2005

If Linq.Enumerable.Contains(Of String)(selectedUsersRoles, RoleCheckBox.Text) Then 
    RoleCheckBox.Checked = True 
Else 
    RoleCheckBox.Checked = False 
End If 

J'ai besoin du code ci-dessus dans VS2005

Que puis-je faire au lieu de LINQ dans le code ci-dessus? Quelqu'un peut-il aider?

+0

Pouvez-vous nous donner plus de contexte s'il vous plaît, par exemple Quel type est selectedUsersRoles (c'est-à-dire quel est le point d'interrogation ici "Dim selectedUsersRoles as?"), Merci. –

Répondre

1
RoleCheckBox.Checked = False 
For Each str As String in selectedUsersRoles 
    If str = RoleCheckBox.Text Then 
      RoleCheckBox.Checked = True 
      Exit For 
    End If 
Next 

Si vous ne souhaitez pas modifier le RoleCheckBox.Checked deux fois (quand str est effectivement trouvé) déclarer alors un indicateur booléen (c.-à-boolFound) avec une valeur initiale faux, changer pour vrai une fois trouvé, et asign RoleCheckBox.Checked = boolFound après la boucle "pour chaque" ....

1
bool containsRole = false; 
foreach(string entry in selectedUsersRoles) 
{ 
    if(entry == RoleCheckBox.Text) 
    { 
    containsRole = true; 
    break; 
    } 
} 

RoleCheckBox.Checked = containsRole; 

Le code est C# mais je suppose que vous aurez l'idée. Ceci est pour IEnumerable. Si vous avez une liste, essayez la solution de Binary Worrier.

Questions connexes