Dans le code suivant, j'utilise 3 instructions foreach. Je cherche juste à remplir une liste quand une liste d'éléments correspond à une autre mais ceux qui ne correspondent pas doivent aussi être ajoutés. Alors je me demandais s'il y avait un moyen plus facile de faire ce qui suit.C# recherche dans les listes
List<T> ds = new List<T>(); //is populated
foreach (var b in template.Bs)
{
List<BD> tempList = new List<BD>();
foreach (BD bd in b.BDs)
{
Boolean found = false;
foreach (DV dv in items)
{
if (bd.C == dv.C)
{
found = true;
tempList.Add(new BD()
{
//populating
});
}
}
if (!found)
tempList.Add(new BD()
{
//populating
});
}
}
Pouvez-vous utiliser LINQ? –
Cela aiderait si vous avez posté le code réel avec lequel vous voulez de l'aide ... ce fragment remplit 'tempList' qui est local à la boucle foreach externe, donc efficacement, la boucle externe n'atteint vraiment rien! – jerryjvl
La boucle externe traverse les différents groupes de listes. La boucle suivante traverse cette liste. La boucle suivante, boucle sur une liste qui tente de faire correspondre et de transmettre des données à la nouvelle liste créée, mais elle doit toujours gérer la liste 2 foreach. donc les documents qui ne correspondent pas plus ceux qui correspondent à la boucle foreach interne. Voyez-vous où cela devient compliqué? – Bruce227