他の関数やイベントハンドラ内でアクセスできるようにプロパティとして宣言されている辞書を持っていますが、C#辞書関数とイベントハンドラ内のプロパティ/フィールドへのアクセス#
Dictionary<string, int> occurrenceDictionary { get; set; }
を宣言適切
これを行う方法を、私は2つの機能を持っています。最初のfunctionOne
は、単語のリストをdictionary<string, int>
に変換します。ここで、string
は単語です。int
は、単語がリストに含まれる回数です。
public string functionOne(List<string> myList)
{
foreach (string item in myList)
{
if (!occurrenceDictionary.ContainsKey(item))
{
occurrenceDictionary.Add(item, 1);
}
else
{
occurrenceDictionary[item]++;
}
}
return maxKey;
}
第二の機能は、この辞書occurenceDictionary
へのユーザー入力wordSearch.Text
を比較し、両者が一致する場合、ユーザーは、この言葉は(キーは言葉です、値が出現量です)が発生した回数を指示されます。
public int word_search(Dictionary<string, int> myDict)
{
if(myDict != null)
{
if (myDict.ContainsKey(wordSearch.Text))
{
...
}
else
{
...
}
}
else
{
...
}
}
ここで、ユーザーがSearch
ボタンをクリックするのを待っているイベントリスナーがあります。これは私が一番問題を抱えている部分ですが、word_search
をイベントハンドラの中で正しく呼び出す方法がわかりません。私は現時点での方法があるので、私はいつもNullReferenceException
を取得しています。それは私が追加しなければならない
if(occurencesDictionary != null) ...
しかしこれをfunctionOneに追加するのは、functionOne
が辞書に移入しているので、その項目が空であるかどうかにかかわらず、項目を辞書に追加したいからです。だから私は、誰もが私が間違っているのか、おそらく私に
「occurrenceDictionary = new Dictionary」を使用する前にどこでも呼びましたか? –
いいえ、それは私の問題だったことが判明しました。私が言ったように、C# – user8009199