У меня есть список со строками, я хочу использовать алгоритм Левенштейна (или любой другой), чтобы проверить, что новая запись, которую я пытаюсь вставить в базу данных, похожа на то, что у меня уже есть в базе данных , Алгоритм должен проходить через каждый элемент в списке и сравнивать с тем, который я хочу вставить. Если подобие высокое, то разрыв цикла и возврат.C# foreach внутри while loop
Я начал, но не уверен, если я на правильном пути. Как прорваться из цикла foreach в цикле while?
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;
}
[перерыв] (https://msdn.microsoft.com/en-us/library/adbctzc4.aspx) для выхода из цикла, [продолжить] (https://msdn.microsoft.com/en -us/library/923ahwt1.aspx), чтобы оставаться в цикле, но переходите к следующей итерации. Также 'from foreach loop in while loop' <- вы хотите вырваться из' foreach', но продолжать в 'while' или вы хотите выйти из обоих (выйти из метода)? Для более позднего 'return true/false', иначе просто' break' внутри 'foreach' – Igor
Я не понимаю, почему вам нужен цикл' while' и 'foreach' – juharr
Я не вижу, где используется' similarityProduct' , Что такое 'compareValue'? Этот код путается неполным. –