C#相当于数组上的php foreach循环

时间:2013-11-11 18:20:03

标签: c# php asp.net

我有以下用PHP编写的循环:

$activesFilters = 0;

foreach ($_GET as $key => $value) {

    if(!empty($value)) $activesFilters++;

}

if(isset($_GET['Filter'])) { $activesFilters = $activesFilters - 1; }

if(isset($_GET['CustomFilter'])) { $activesFilters = $activesFilters - 1; }

if(isset($_GET['showArchived'])) { $activesFilters = $activesFilters - 1; }

我希望将其转换为ASP.NET C#Razor。

到目前为止,我有:

int activeFilter = 0;

@foreach(Request.QueryString as key in value) {
   if(!empty(value)) activeFilters+1;
}

@if(Request.QueryString['Filter']) activeFilters = activeFilters - 1;

@if(Request.QueryString['CustomFilter']) activeFilters = activeFilters - 1;

@if(Request.QueryString['showArchived']) activeFilters = activeFilters - 1;

这是我感到困惑的foreach循环。

我不明白如何处理C#中的key => value

我已根据http://msdn.microsoft.com/en-us/library/ttw7t8t6(v=vs.90).aspx编写了上述内容,但没有显示处理键+值部分的任何示例。

更新

基于以下方面的帮助:

@int activeFilters = 0;

@foreach (string key in Request.QueryString)
{
    string value = Request.QueryString[key];

    if(String.IsNullOrEmpty(value)){
        return activeFilters+1;
    }

}

但是它说当前上下文中不存在activeFilters。如何将其公开给C#中的foreach循环?因为这在PHP世界中很好。

1 个答案:

答案 0 :(得分:2)

foreach (string key in Request.QueryString)
{
    string value = Request.QueryString[key];
    // add your other code here
}

现在,您遍历查询字符串中的所有键,然后使用Request.QueryString[key]获取其值。