C# foreach 循环如果项目不存在则跳过它

时间:2021-02-19 05:02:57

标签: c# asp.net

我有一个这样的循环:

@foreach(var elevation in inventory.Elevations)
{
     <td>@elevation.Title</td>
}

现在我的库存。高度可以有 3 或 4 个项目,永远不会更多或更少。

标题可以是“A”、“B”、“C”或“D”。举个例子,一个inventory.Elevations可能有A、C和D但没有B,而另一个可能有B、C、D但没有A,而另一个可能有A、B、D但没有C。如果是这样的话,我会喜欢显示 <td>&nbsp;</td> 我将如何完成此操作?我什至不知道该怎么做才能做到这一点。

1 个答案:

答案 0 :(得分:2)

将一个列表中的所有海拔定义为 var elevations = new List<string>() { "A", "B", "C", "D" };。遍历每个并检查您的 inventory.Elevations。如果找到,则获取 Title 其他 &nbsp;。完整代码如下。

@{
    // Set all your elevations
    var elevations = new List<string>() { "A", "B", "C", "D" };
}

@foreach(var e in elevations)
{
    <td>@(inventory.Elevations.FirstOrDefault(x => x.Title == e)?.Title ?? "&nbsp;")</td>
}

或者您可以添加具有条件 elevations.Contains 的三元,如下所示。

@{
    // Set all your elevations
    var elevations = new List<string>() { "A", "B", "C", "D" };
}

@foreach(var elevation in inventory.Elevations)
{
    <td>@(elevations.Contains(elevation.Title) ? elevation.Title : "&nbsp;")</td>
}
相关问题