J'ai une liste avec des chaînes, je veux utiliser l'algorithme de Levenstein (ou tout autre) pour vérifier si le nouvel enregistrement que j'essaie d'insérer dans une base de données est similaire à ce que j'ai déjà dans la base de données . L'algorithme devrait aller à travers chaque élément de la liste et comparer avec celui que je veux insérer. Si la similarité est élevée, alors cassez la boucle et retournez.C# foreach inside while loop
J'ai commencé, mais je ne sais pas si je suis sur la bonne voie. Comment rompre avec foreach boucle en boucle?
public static bool IsSimilarValuesExist(string value)
{
bool result = false;
string valueFromList = string.Empty;
double similarityProduct = 0;
List<string> products = ServicesMail.GetProducts();
IStringMetric metric = new Levenstein();
while (metric.GetSimilarity(value, valueFromList) < 5)
{
foreach (var item in products)
{
// If current item not similar, continue
// If is similar, break from loop and assign current compareValue to similarityProduct
}
}
return result;
}
[rupture] (https://msdn.microsoft.com/en-us/library/adbctzc4.aspx) pour sortir de la boucle, [continue] (https://msdn.microsoft.com/en -us/library/923ahwt1.aspx) pour rester dans la boucle mais passer à l'itération suivante. Aussi 'de foreach loop in while loop' <- vous voulez sortir de' foreach' mais continuer dans 'while' ou vous voulez sortir des deux (quitter la méthode)? Pour le 'return true/false' plus tard, sinon juste' break' dans le 'foreach' – Igor
Je ne vois pas pourquoi vous avez besoin d'une boucle' while' et 'foreach' – juharr
Je ne vois pas où' similarityProduct' est utilisé . Qu'est-ce que 'compareValue'? Ce code est incomplètement source de confusion. –