2010-07-23 8 views
-1

je travaille avec le studio visuel 2008, J'ai une question concernant IEnumerator, il ne l'a pas accepté, et souligner en rouge. partie du programme:C# IEnumerator je n'accepte pas dans le studio visuel 2008

foreach (string attribut in liste_attr) 
{ 
    string perim=""; 
    if (attribut == "grpProfilDn") 
    { 
    PropertyValueCollection ValueCollection DirEntry.Properties["grpProfilDn"]; 
    System.Collections.Generic.IEnumerator en ValueCollection.GetEnumerator(); 

    while (en.MoveNext()) 
    { 
     perim += en.Current.ToString(); 
    } 

    utilisateur1 = perim;    
    } 
} 
+0

Soulignez quelle partie? Et quel est le message d'erreur (msg du compilateur)? –

+0

Où est exactement le problème? Et quel est le message d'erreur (compilateur)? –

+2

Cette 'PropertyValueCollection ValueCollection DirEntry.Properties [" grpProfilDn "];' est un peu bizarre ... – Cipi

Répondre

1

Il existe deux interfaces:

  • System.Collections.Generic.IEnumerator<T> (générique)
  • System.Collections.IEnumerator (non générique)

Vous semblez essayer d'utiliser le premier comme s'il n'était pas générique - mais il est difficile d'en être certain car le code que vous avez posté est invalide de plusieurs façons (il vous manque des choses comme "=").

Plus important encore: pourquoi n'utilisez-vous pas foreach?

+0

+1 pour pourquoi pas 'foreach'. –

1

Vous êtes absent 2 '=' dans:

... 
    PropertyValueCollection ValueCollection = DirEntry.Properties["grpProfilDn"]; 
    System.Collections.Generic.IEnumerator en = ValueCollection.GetEnumerator(); 
    ... 
+1

Je * soupçonne * que c'est juste une erreur couper-coller - mais ce qui précède ne compilerait toujours pas, pour les raisons données dans ma réponse. –

+0

@Jon Skeet: Vous avez raison. Merci d'avoir signalé mon erreur. –

0

Il serait utile si vous montriez exactement ce a été souligné et les messages.

Cependant, cette syntaxe C# n'est pas correcte.

Pour Déclarez et initialisez une variable, vous devez syntaxe comme:

TheType variableName = someExpression; 

Je ne vois pas que = dans votre code.

0
string perim = string.Empty; 

    foreach (var item in ValueCollection) { 
     perim += item.ToString(); 
    }