我有一个包含字符串的列表,我想使用Levenstein算法(或任何其他)来检查我尝试插入数据库的新记录是否与我在数据库中已有的相似。算法应该通过列表中的每个项目,并与我想要插入的项目进行比较。如果相似度很高,那么打破循环并返回。
我已经开始,但不确定我是否正确的方式。如何在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;
}
答案 0 :(得分:3)
如何在while循环中断开foreach循环?
别。通过重构解决问题。假设您要用方法替换内部循环。 为了使外循环正确,该方法的输入和输出必须是什么?现在实际上用这些语义编写一个方法,你的问题就解决了。
答案 1 :(得分:0)
在你的内部添加一个额外的变量,以指示是否突破外循环
while(...)
{
bool shouldBreak = false
foreach(...)
{
shouldBreak = true;
break;
}
if (shouldBreak)
break;
}
答案 2 :(得分:0)
抱歉提问。不同的方式看问题。找到了不同的解决方案。
<form id="searchForm" name="searchForm" class="form-inline" ng-submit="ul.callServer(criteria)" novalidate>
<div class="form-group" style="margin-top: 5px;">
<label class="searchFormLabel" for="searchUserName">User Name</label>
<input type= "text" ng-model = "criteria.userName"/>
<label class="searchFormLabel" for="searchUserName">First Name</label>
<input type= "text" ng-model = "criteria.firstName"/>
<label class="searchFormLabel" for="searchUserName">Last Name</label>
<input type= "text" ng-model = "criteria.lastName"/>
</div>
<!---------------------------------------------------users----------------------------------------------------->
<div class="form-group" style="margin-top: 5px;" ng-init="criteria.userType='-1'">
<label class="searchFormLabel" id="searchUser" for="searchUser">
User Type
</label>
<label style="margin-left: 0px">
<input type="radio"
name="userTypeRadioOptions"
id="searchAll"
value="-1"
ng-init="initForm()"
ng-model="criteria.userType"
ng-click="clickAllOrdersButton()">
All
</label>
<br>
<label style="margin-left: 124px">
<input type="radio"
name="periodRadioOptions"
id="searchPending"
value="0"
ng-init="initForm()"
ng-model="criteria.userType">
Back Office
</label>
<br>
<label style="margin-left: 124px">
<input type="radio"
name="periodRadioOptions"
id="searchFinished"
value="1"
ng-init="initForm()"
ng-model="criteria.userType">
Mobiele
</label>
<br>
<label style="margin-left: 124px">
<input type="radio"
name="periodRadioOptions"
id="searchFinished"
value="2"
ng-init="initForm()"
ng-model="criteria.userType">
Klanten
</label>
</div>