使用两个不同的列表将值添加到新列表[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用两个不同的列表将值添加到新列表[关闭]相关的知识,希望对你有一定的参考价值。

我有两个不同的列表,我想将这些列表的值添加到新列表中,但我不知道如何使用循环来获取重复值....

[HttpPost]
public async Task<IActionResult> Create(IList<Turno> Turno, IList<int> DocenteId)
{
    var turnodocente = new List<TurnoDocente>();

 foreach(var item in Turno)
        {
            foreach(var ite in DocenteId)
            {
                turnodocente.Add(new TurnoDocente
                {
                    TurnoId = item.TurnoId,
                    DocenteId = ite
                });
            }
        }

        HttpResponseMessage responsemeta = await HttpRequestBuilder.WebApiClient.PostAsJsonAsync("api/TurnoDocente", turnodocente);
        responsemeta.EnsureSuccessStatusCode();
        await _context.SaveChangesAsync();

    return RedirectToAction(nameof(Index));
}

IList<Turno> TurnoIList<int> DocenteId,我有价值观,现在在我的List<TurnoDocente>我只想知道我可以用什么周期为它们添加值...

我已经使用了两个foreach循环,但很快就明白,通过这种方式,我实现了重复值,而且不会...

Result

目标只是让没有红十字标记的值...

答案

您可以在添加条目之前测试以查看列表中是否已存在条目。

using System.Linq;
...
foreach(var item in Turno)
{
    foreach(var ite in DocenteId)
    {
        if (!turnodecente.Any(x => x.TurnoId == item.TurnoId && x.DocenteId == ite))
        {
            turnodocente.Add(new TurnoDocente
            {
                TurnoId = item.TurnoId,
                DocenteId = ite
            });
        }
    }
}

或者,您可以在构建列表后删除重复项:

turnodecente = turnodecente.Distinct();

如果您的两个列表是一对一关联,您可以尝试

for (int i = 0; i < Turno.Count; i++)
{
    turnodocente.Add(new TurnoDocente
    {
         TurnoId = Turno[i].TurnoId,
         DocenteId = DocenteId[i]
    });
}

以上是关于使用两个不同的列表将值添加到新列表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将不同长度的列表添加到新数据帧

使用列表将值从一个类传输到另一个类

将两个 LISTS 值的 SUM 添加到新 LIST

如何将 2 个不同的列表加入 1 个列表 [关闭]

PySimpleGui:如何将值从一个列表框添加到另一个列表框

将值添加到数据框和导出