我询问是否可以检查某些关键字是否可以在列表中找到,如果它们都在那里,则问题是正确的。在此处找到: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 :(得分: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