我有一个带有字符串的列表,我想用Levenstein算法(或任何其他)来检查我试图插入数据库的新记录是否与我已经在数据库中相似。算法应该通过列表中的每一个项目,并与我想要插入的项目进行比较。如果相似性很高,则打破循环并返回。C#foreach while while循环
我已经开始,但不知道如果我是正确的方式。如何从while循环中的foreach循环中打破?
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;
}
[BREAK](https://msdn.microsoft.com/en-us/library/adbctzc4.aspx)退出循环,[继续](https://msdn.microsoft.com/en -us/library/923ahwt1.aspx)停留在循环中,但转到下一次迭代。同时'从while循环中的foreach循环'< - 你想打破'foreach',但继续'while'或者你想打破两者(退出方法)?对于后面的'返回true/false',否则只是在'foreach'里面'break'' – Igor
我不明白你为什么需要'while'和'foreach'循环 – juharr
我看不到'similarityProduct'在哪里使用。什么是'compareValue'?此代码混淆不清。 –