我有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>
答案 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>