c# - 在 C# 的列表中循环遍历列表

标签 c# asp.net list

我有一个名为 Models 的列表,其中包含 ID、Title、Variants。 Variants 是一个列表,其中包含另一个元素 Id、ModelID、Title。 我的问题是如何遍历 Variants 列表,它是模型的子列表。

存储库.cs

public class Repository : IRepository
{
    private List<ModelSearch> _list = new List<ModelSearch>();
    public Repository()
    {
        populateList();
    }

    private void populateList()
    {
        _list.Add(new ModelSearch
        {
            ID = 1,
            Title = "Scorpio",
            Variants = new List<Variant> { 
                new Variant { ID = 1, ModelID = 1, Title="scorpio1" },
                new Variant { ID = 2, ModelID = 1, Title="scorpio2" },
                new Variant { ID = 3, ModelID = 1, Title="scorpio3" }
            }
        });

        _list.Add(new ModelSearch
        {
            ID = 2,
            Title = "Bolero",
            Variants = new List<Variant> { 
                new Variant { ID = 1, ModelID = 2, Title="Bolero1" },
                new Variant { ID = 2, ModelID = 2, Title="Bolero2" },
                new Variant { ID = 3, ModelID = 2, Title="Bolero3" }
            }
        });
    }

    public IEnumerable<ModelSearch> GetAll()
    {
        return _list.AsEnumerable();

    }
}

这是我的 Index.cshtml 文件:

@foreach (var item in Model) 
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.ID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Variants.First().Title)
        </td>    
    </tr>
}

我还想与此表一起显示相应的变体。我怎样才能做到这一点?

模型搜索 Controller .cs

public class ModelSearchController : Controller
{
    private IRepository _repo;

    public ModelSearchController()
    {
        _repo = new Repository.Repository();
    }

    public IActionResult Index()
    {
        var modelList = _repo.GetAll(
        return View(modelList);
    }
}

最佳答案

如果你只是想显示所有变体标题,那么你需要一个内部循环,例如这里我将标题放在 ul 元素中:

@foreach (var item in Model) 
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.ID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            <ul>
                @foreach(var variant in item.Variants)
                {
                    <li>@variant.Title</li>
                }
            </ul>
        </td>

    </tr>
}

关于c# - 在 C# 的列表中循环遍历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51047205/

相关文章:

c# - CefSharp 浏览器视频无法播放

c# - 如何在 Multi-Tenancy 应用程序中限制其他事件目录用户

c# - 您如何处理遗留应用程序中未使用的代码?

python - 使用 python 中的坐标列表和多数组错误绘制图形

c# - Microsoft.Graph 作为附件转发

c# - 从网站保存网络摄像头图像

c# - ASP.NET:多个程序集版本,相同的 Web 应用程序

asp.net - 从非域 Web 主机连接到 SQL Server 的最佳方法

python - 无法在 Python 中反转列表,获取 "Nonetype"作为列表

list - 在 KDB 中是否有与 `outer` 等效的 `exclusive or` 或 `inter` 运算符?