0

好吧,我询问了检查是否可以在列表中找到某些关键字,如果它们都在那里,那么问题是正确的。在这里找到:检查字符串是否包含列表中的所有输入

我还想知道列表中有多少个单词,然后将其除以百分比,这样用户就知道他们回答每个问题的准确程度。

        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。我不确定为什么它们会为零。使困惑!帮助!

4

2 回答 2

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
于 2013-02-07T11:12:06.990 回答
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和计算百分比。

于 2013-02-07T11:05:26.947 回答