2013-02-07 30 views
0

好吧,我詢問了檢查某個關鍵字是否可以在列表中找到,如果他們都在那裏問題是正確的。發現這裏:Check if the string contains all inputs on the list檢查列表中有多少個字符串實例

我想知道的是有多少單詞在列表中,然後將其分開並得到一個百分比,所以用戶知道他們如何準確地回答每個問題。

 public String KeyWords_Found() 
     { 
      int Return_Value = 0; 
      foreach (String s in KeyWords) 
      { 
       if (textBox1.Text.Contains(s)) 
       { 
        Return_Value++; 
       } 
      } 
      int Holder = Return_Value/KeyWords.Count; 
      int Fixed = Holder * 100; 
      return Fixed + "%"; 
     } 

所以我想這是什麼代碼它做的是檢查列入名單KeyWords關鍵字的所有實例。然後通過除以關鍵字總量並乘以100得到百分比。但它表示這兩個值都是0,我不能將其除以0.我不確定它們爲什麼會爲零。困惑!幫幫我!

+0

請在'KeyWords'中創建和添加值的代碼,因爲它聽起來像是空的。 – juharr

回答

0

你應該先檢查一下,如果KeyWords爲空或不

public String KeyWords_Found() 
{ 
    if (KeyWords.Count == 0) 
     return "0%"; 
    // rest of the code 
} 

或者你可以使用LINQ的,而不是寫你自己的方法:

int nOfOccurences = KeyWords.Where(k => textBox1.Text.Contains(k)).Count(); 

確保您using System.Linq;爲上班。

儘管如此,您仍然需要檢查KeyWords.Count == 0並自行計算百分比。

+0

應該'Count()'爲'Where(x)'return'IEnumerable' :) – gzaxx

+0

@gzaxx修正了它,謝謝。 – Nolonar

0

您應該在計算中使用浮點數學而不是整數數學。

int i=100; 
int a=51; 

(i/a)==0 //true, integer division sucks for calculating percentages 

((double)i/a)==0 //false, actually equals ~1.96 
相關問題