我有两个不同的列表,我想将这些列表的值添加到新列表中,但我不知道如何使用循环来获取重复值....
[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> Turno
和IList<int> DocenteId
,我有价值观,现在在我的List<TurnoDocente>
我只想知道我可以用什么周期为它们添加值...
我已经使用了两个foreach
循环,但很快就明白,通过这种方式,我实现了重复值,而且不会...
目标只是让没有红十字标记的值...
您可以在添加条目之前测试以查看列表中是否已存在条目。
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]
});
}