2009-07-27 12 views
3

Hacking sur un modèle Nvelocity C# /. NET view (fichier .cs), il me manque vraiment le mot-clé Python "in" (comme dans "foo in list"). Quelle est la fonction intégrée pour vérifier l'appartenance à la liste/au tableau?Quel est l'équivalent nvelocity/C# de "if x in array"?

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 suis pas sûr de ce que la bonne syntaxe est, s'il est en effet tout. J'ai jeté un rapide coup d'œil au Velocity Template Guide mais je n'ai rien trouvé d'utile.

Répondre

3

"Contient" est en effet ce que je cherchais.

... Et dans le modèle-NVelocity parlent:

#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 
1
string[] ignore = {"a", "b", "c" }; 
foreach(var item in blah){ 
    if(!ignore.Contains(item)) 
    { 
     // do stuff 
    } 
} 
4

Vous pouvez utiliser la fonction contains la liste, il devrait donc être

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

Si "IGNORE" liste, il est la méthode contains() sur elle. Cela rendrait votre code 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)) { 
     // 
    } 
} 
0

Vous pouvez utiliser List.Contains

Notez que si vous avez un tableau, vous pouvez lancer le tableau à IList, ou créer une nouvelle liste passant le tableau

0

Vous ne savez pas quelle version de C# vous utiliseriez, mais si vous avez Linq alors vous pouvez utiliser Contains sur un tableau.

+0

Même sur une dénombrable;) –

Questions connexes