我有一个用ASP构建的粗糙的天气仪表板。. NET Core和c# (MVC)。现在我让视图通过foreach循环显示来自API调用的数据:
@foreach (var forecast in Model.list)
{
<tr>
<td>@(TimeUtils.UnixTimeStampToDateTime(forecast.dt).ToLongDateString())</td>
<td>@forecast.main.temp_min F°</td>
<td>@forecast.main.temp_max F°</td>
<td>@forecast.main.temp F°</td>
<td>@forecast.main.feels_like</td>
</tr>
}
我想从API调用中显示的数据存储在模型中的列表中:
public class CityModel
{
public List<List> list { get; set; }
}
此列表提供5天内每3小时的天气数据。当foreach循环完成对List数据的迭代时,它在表中显示总共40个条目。
Weather forecast for Enid
date min max temp feels_like
Monday, October 18, 2021 68.99 F° 69.85 F° 68.99 F° 67.37
Monday, October 18, 2021 70.16 F° 72.52 F° 70.16 F° 68.52
Monday, October 18, 2021 66.36 F° 67.24 F° 67.24 F° 65.41
Monday, October 18, 2021 63.55 F° 63.55 F° 63.55 F° 61.54
Tuesday, October 19, 2021 60.76 F° 60.76 F° 60.76 F° 58.8
Tuesday, October 19, 2021 59.74 F° 59.74 F° 59.74 F° 57.76
cont...
我想知道的是如何让表每8个条目/索引显示一次(使其实际上成为每日预测),而不是每个条目/索引显示一次?我猜想它可能涉及到使用条件:
if( index % 8 == 0) {
<tr>
<td>@(TimeUtils.UnixTimeStampToDateTime(forecast.dt).ToLongDateString())</td>
<td>@forecast.main.temp_min F°</td>
<td>@forecast.main.temp_max F°</td>
<td>@forecast.main.temp F°</td>
<td>@forecast.main.feels_like</td>
</tr>
}
但除此之外,我是在黑暗中。
您可以创建一个仅由您想要显示的项目组成的新列表,例如:
var forecastList = Model.list.Where((x,i) => i % 8 == 0);
@foreach (var forecast in forecastList)