检查列表中的字符串实例数

时间:2013-02-07 10:59:17

标签: c# math

我询问是否可以检查某些关键字是否可以在列表中找到,如果它们都在那里,则问题是正确的。在此处找到: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.我不确定它们为什么会为零。困惑!救命啊!

2 个答案:

答案 0 :(得分: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并自行计算百分比。

答案 1 :(得分: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