3 votes

Quel est l'équivalent en nvelocity/C# de "if x in array" ?

En travaillant sur un modèle de vue C#/.NET de Nvelocity (fichier .cs), le mot clé Python "in" (comme dans "foo in list") me manque vraiment. Quelle est la méthode intégrée pour vérifier l'appartenance à une liste/un tableau ?

C'est ce que mon cerveau Python veut faire :

#set ( $ignore = ['a','b','c'] )
<ul>
#foreach ( $f in $blah )
  #if ( $f not in $ignore )
    <li> $f </li>
  #end
#end
</ul>

Mais je ne sais pas quelle est la bonne syntaxe, si tant est qu'il y en ait une. J'ai jeté un coup d'œil rapide à la Guide du modèle Velocity mais je n'ai rien trouvé d'utile.

4voto

bashmohandes Points 1930

Vous pouvez utiliser la fonction Contains dans List, donc ce devrait être

List<int> list = new List<int>{1, 2, 3, 4, 5, 6, 7};
foreach(var f in blah)
if(list.Contains(f))

3voto

pfctdayelise Points 1736

"Contient" est en effet ce que je cherchais.

...Et dans le langage du modèle NVelocity :

#set( $ignorefeatures = ["a", "b"] ) 
#foreach( $f in $blah )
    #if ( !$ignorefeatures.Contains($f.Key) )
        <tr><td> $f.Key </td><td> $f.Value </td></tr>
    #end                
#end

1voto

pb. Points 4609
string[] ignore = {"a", "b", "c" };
foreach( var item in blah ){
    if( !ignore.Contains(item) )
    {
        // do stuff
    }
}

0voto

Josip Medved Points 2307

Si "ignore" est une liste, il y a une méthode Contains() sur celle-ci. Votre code serait alors quelque chose comme ceci :

var ignore = new List<string>();
ignore.AddRange( new String[] { "a", "b", "c" } );
foreach (var f in blah) {
    if (!ignore.conains(f)) {
        //
    }
}

0voto

Guvante Points 10338

Vous pouvez utiliser List.Contains

Notez que si vous avez un tableau, vous pouvez convertir le tableau en IList, ou créer une nouvelle liste en passant le tableau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X