在两个垂直列中拆分指定索引处的数据

时间:2014-03-05 21:54:08

标签: html .net asp.net-mvc razor

我有20个整数的数组int[] numbers;

我想在两个html表格列中显示这些数字,其中第一列应该以11位数分解并继续渲染第二个,例如

Numbers | Some other data
---------------------------
1    12 |  Some data a
2    13 |  Some data b
..   14 |  Some data c
10   15 |
11   16 |

我试过这样的事情

<table>
   <tr>
       <td>Numbers</td>
       <td>Some other data</td>
   </tr>
   <tr>
   @{
       int numberscounter= 0;
       foreach (var item in numbers){

          if (numberscounter< 11) { 
           numberscounter++;
          <tr>
             <td>@item.Number</td>
             <td>@item.SomeOtherData</td>
          </tr>
         }
         else {
            <tr>    
                <td>@item.Number</td>
                <td>@item.SomeOtherData</td>
            </tr>   
         }
       }
   }
   </tr>
</table>

1 个答案:

答案 0 :(得分:0)

这不优雅,我仍然不明白你想做什么。例如,其他一些数据是什么以及如何显示它,但为了得到你想要的东西(只需将11处的数字分成2列),你可以做到以下几点:

摆脱不需要的数组,并使用for循环执行以下操作

<table>
    <tr>
        <td colspan="2">Numbers</td>
        <td>Some other data</td>
    </tr>

    @for (int i = 1; i <= 11; i++){
        <tr>
            <td>@i.ToString()</td>
            <td>@(((i + 11) <= 20) ? (i + 11).ToString(): "")</td>
            <td>Some other data here (notsure how this is generated)</td>
        </tr>
    }
</table>

修改 (评论后):好的,所以你想要使用你已经在未知对象中的数字并将它们保存在2个单独的列中....

这个怎么样

@{
    //These are my test values. you will need to edit them with your values
    int[] intarray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
    var Below11 = intarray.Where(x => x <= 11).OrderBy(x => x).ToArray();
    var Above11 = intarray.Where(x => x > 11).OrderBy(x => x).ToArray();
}


<table>
    <tr>
        <td colspan="2">Numbers</td>
        <td>Some other data</td>
    </tr>

    @for (int i = 0; i <= Math.Max(Below11.Count(), Above11.Count()) - 1; i++)
    {
        <tr>
            <td>@(i < Below11.Count() ? Below11[i].ToString() : "")</td>
            <td>@(i < Above11.Count() ? Above11[i].ToString() : "")</td>
            <td>Someother data</td>
        </tr>
    }
</table>