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

3

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

Repository.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>
}

我希望在这个表格中同时显示相应的变体。我该如何实现?

ModelSearchController.cs

public class ModelSearchController : Controller
{
    private IRepository _repo;

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

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

1
在所讨论的属性上再次循环。 - Nkosi
1个回答

7

如果你只想显示所有的变体标题,那么你需要一个内部循环。例如,在这里,我将标题放在一个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>
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接