nvelocity/C# 中“if x in array”的等价物是什么?

发布于 2024-07-29 07:57:44 字数 493 浏览 4 评论 0原文

在修改 Nvelocity C#/.NET 视图模板(.cs 文件)时,我真的缺少 Python 关键字“in”(如“foo in list”)。 用于检查列表/数组成员资格的内置函数是什么?

这就是我的 Python 大脑想要做的:

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

但我不确定正确的语法是什么(如果确实有的话)。 我快速浏览了 Velocity 模板指南但没有发现任何有用的东西。

Hacking on a Nvelocity C#/.NET view template (.cs file), I'm really missing the Python keyword "in" (as in, "foo in list"). What is the built-in for checking list/array membership?

This is what my Python brain wants to do:

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

But I am not sure what the right syntax is, if there is indeed any. I had a quick look at the Velocity Template Guide but didn't spot anything useful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

锦欢 2024-08-05 07:57:44

您可以在 List 中使用 Contains 函数,所以它应该是

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

You can use the Contains function in List, so it should be

List<int> list = new List<int>{1, 2, 3, 4, 5, 6, 7};
foreach(var f in blah)
if(list.Contains(f))
巾帼英雄 2024-08-05 07:57:44

“包含”确实是我一直在寻找的东西。

...在 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

"Contains" is indeed what I was looking for.

...And in NVelocity template-speak:

#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
难理解 2024-08-05 07:57:44
string[] ignore = {"a", "b", "c" };
foreach( var item in blah ){
    if( !ignore.Contains(item) )
    {
        // do stuff
    }
}
string[] ignore = {"a", "b", "c" };
foreach( var item in blah ){
    if( !ignore.Contains(item) )
    {
        // do stuff
    }
}
音盲 2024-08-05 07:57:44

如果“ignore”是列表,则其上有 Contains() 方法。
这将使你的代码像这样:

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

If "ignore" is list, there is Contains() method on it.
That would make your code something like this:

var ignore = new List<string>();
ignore.AddRange( new String[] { "a", "b", "c" } );
foreach (var f in blah) {
    if (!ignore.conains(f)) {
        //
    }
}
忆梦 2024-08-05 07:57:44

您可以使用 List.Contains

请注意,如果您有一个数组,您可以将该数组转换为 IList,或者创建一个传入该数组的新 List。

You can utilize List.Contains

Note that if you have an array you can cast the array to IList, or create a new List passing the array in.

提笔落墨 2024-08-05 07:57:44

不确定您将使用哪个版本的 C#,但如果您有 Linq,则可以在数组上使用 Contains

Not sure what version of C# you'd be using, but if you have Linq then you can use Contains on an array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文