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

nff*_*nff 3 c# asp.net list

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

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();

    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的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>
}
Run Code Online (Sandbox Code Playgroud)

我想显示相应的变体以及此表.我怎样才能做到这一点?

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*idG 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>
}
Run Code Online (Sandbox Code Playgroud)