我有一個帶有字符串的列表,我想用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'?此代碼混淆不清。 –