【问题标题】:C# equivalent of php foreach loop on array [closed]C#等效于数组上的php foreach循环[关闭]
【发布时间】:2013-11-23 15:42:51
【问题描述】:

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

$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 世界中很好。

【问题讨论】:

  • 那么,您遇到了什么问题?
  • 我投票结束,因为这个问题表明没有努力解决。一个简单的搜索会立即告诉你 foreach 循环在 C# 中是如何工作的。
  • @JeroenVannevel 我确实搜索到了上面问题中的代码。否则我就没有什么可展示的了。不了解某件事的工作原理并不意味着它表明缺乏努力!并且假设某人会根据一篇文章“立即”理解某些东西是居高临下的!

标签: c# php asp.net


【解决方案1】:
foreach (string key in Request.QueryString)
{
    string value = Request.QueryString[key];
    // add your other code here
}

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

【讨论】:

  • 谢谢。如果你看一下上面的代码。您可以查看我在值计数方面遇到的其他问题。
  • @Cameron:写activeFilters++activeFilters = activeFilters + 1
  • 是的,试过了。但它说 activeFilters 不存在。即使我已经在 foreach 循环上方声明了它?
  • @Cameron:请看这个 SO 问题:stackoverflow.com/q/6601715/2619912
  • 哇哦! C# 非常严格! :P 谢谢
猜你喜欢
  • 2011-04-08
  • 1970-01-01
  • 2012-05-23
  • 2013-03-05
  • 1970-01-01
  • 2020-05-01
  • 2011-06-09
  • 2020-05-17
  • 1970-01-01
相关资源
最近更新 更多