我猜这是故意的;如果是这样的话,谁能解释一下为什么或者是怎么发生的?我阅读了微软网站上的文档,但没有找到任何解释为什么for循环在剃须刀文件中是这样行为的.

当I for在剃须刀标记中循环时,呈现的变量是最终的变量值,而不是增量计数.它为什么要这么做?

加价...

<MudStack>

  @for (int x = 0; x < 5; x++) {

    <MudPaper>

      <MudText Typo="Typo.body1">
        @(x)
      </MudText>

    </MudPaper>
  }

</MudStack>

结果... The result of the above markup

5
5
5
5
5

我期待着看到

0
1
2
3
4
5

推荐答案

引入一个临时变量:

<MudStack>

  @for (int x = 0; x < 5; x++) {
    var tmp = x;
    <MudPaper>

      <MudText Typo="Typo.body1">
        @(tmp)
      </MudText>

    </MudPaper>
  }

</MudStack>

如果我理解正确的话,生成的代码将产生与Simple lambda closure相同的闭包(我假设是由于与MudBlazor的结合)

我期待看到.... 5

然后,您还需要将循环条件更改为i <= 5

Csharp相关问答推荐

FromServices不使用WebAppliationFactory程序>

如何在Visual Studio中为C# spread操作符设置格式规则?

注册通用工厂的C# Dep注入

EF Core在请求列表时忽略列,但在按ID获取时包含

通过EFCore上传大量数据.

WPF DataGrid中的三维数据

使用可信第三方的Iext8.Net pdf签名

获取具有AutoFaces的所有IOptions对象的集合

为什么在使用动态obj+类obj时会调用串联?

如何捕获对ASP.NET核心应用程序的所有请求并将其发送到一个页面

取决于您的数据量的多个嵌套循环

用于管理System.Text.Json中的多态反序列化的自定义TypeInfoResolver

为什么AggregateException的Catch块不足以处理取消?

DbContext-传递自定义配置选项

为什么ReadOnlySpan;T&>没有Slice(...)的重载接受Range实例的?

RCL在毛伊岛应用程序和Blazor服务器应用程序.Net 8.0中使用页面

我是否应该注销全局异常处理程序

Visual Studio如何使用当前的框架?

项目参考和方法签名问题

带有类约束的C#泛型