C#foreach里面循环

时间:2016-07-22 14:26:57

标签: c# algorithm similarity

我有一个包含字符串的列表,我想使用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;
    }

3 个答案:

答案 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>