私は文字列のリストを持っていますが、私はデータベースに挿入しようとしている新しいレコードが既にデータベースにあるものと似ているかどうかを確認するためにLevensteinアルゴリズム(または他の方法) 。アルゴリズムは、リスト内のすべての単一項目を通過し、挿入したいものと比較する必要があります。類似性が高い場合は、ループを解除して戻ります。C#foreach inside 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;
}
ループを終了し、[ブレーク](https://msdn.microsoft.com/en-us/library/adbctzc4.aspx)は、(https://msdn.microsoft.com/en [続行] -us/library/923ahwt1.aspx)を使用してループに留まりますが、次の反復に移動します。また、 'foreach loop in whileループ' < - foreachから抜け出したいが、 'while'で続けるか、両方から抜け出したい(メソッドを終了する)?後で 'true/falseを返します'、 'foreach'の中で' break'を返します – Igor
なぜ 'while'ループと' foreach'ループが必要なのかわかりません – juharr
'similarityProduct'がどこに使われているのかわかりません。 'compareValue'とは何ですか?このコードは紛らわしく不完全です。 –