0

看看下面的代码。我在另一个循环中有一个 foreach 循环,但是当我运行页面行时重复。有没有办法停止重复行。这是代码和结果:

![<div class="itemContent">
<table cellspacing="0" cellpadding="0" class="productspecstable" style="float: right">
    <tbody>
        <!-- B:07L -->
        @foreach(var row in select)
        {
            foreach(var rows in selects)
            {
                <tr>
                    <td>@rows.Specifications</td>
                    <th>@row.LaptopOptions</th>
                </tr>
            } 
        }
   </tbody>
</table>
</div>

在此处输入图像描述

4

3 回答 3

1

我不完全确定您要通过最终布局实现什么,但从您的图像来看,我认为您正在寻找类似于显示规范标题的内容,然后是所有笔记本电脑选项。如果是这种情况,那么您将需要类似的东西:

@foreach(var row in select){

    <tr>
        <th>@row.LaptopOptions</th>
    </tr>

    foreach(var rows in selects){

        <tr>
            <td>@rows.Specifications</td>
        </tr>

    } 
}
于 2012-08-04T17:36:26.713 回答
1

对于外循环的每次迭代,重复内循环。但是,您不能在两个列表上同步迭代,因为 foreach 只关心一个,并且在该循环中,您并不真正知道您在列表中的哪个位置(因此您无法与第二个列表同步)。

可能的解决方案:

1) 如果可以使用索引访问 select[s],请使用一个 for 循环来遍历两者(前提是它们的排序方式相同):

for(int idx=0;idx<select.Count;idx++)
{
  ...
  @select[idx].Specifications
  ...
  @selects[idx].LaptopOptions
  ...
}

2)尝试减少到​​一个选择有几个值(在发布代码之前的代码中),那么你只需要一个foreach循环:

foreach (var row in select)
{
  ...
  @row.Specifications
  ...
  @row.LaptopOptions
  ...
}
于 2012-08-04T17:32:25.953 回答
0

内循环必须是您的外循环,因为笔记本电脑选项可以有多个规格

          foreach(var rows in selects){
foreach(var row in select){
于 2012-08-04T17:35:52.563 回答