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 + "%";
        }

したがって、コードで実行したいのは、 list にリストされているキーワードのすべてのインスタンスをチェックすることですKeyWords。次に、キーワードの合計数で割り、100 を掛けてパーセンテージを取得します。混乱している!ヘルプ!

4

2 に答える 2

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 に答える
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 に答える