私はこのような辞書を持っています:
private Dictionary<string, List<SmartTextItemModel>> service_ListOfItems = new Dictionary<string, List<SmartTextItemModel>>();
service_ListOfItems["bingsearch"] = MyProgramKernel.Instance.SmartTextViewModel.SmartTextStateModel.BingItemResults;
service_ListOfItems["wikipedia"] = MyProgramKernel.Instance.SmartTextViewModel.SmartTextStateModel.WikipediaItemResults;
service_ListOfItems["youtube"] = MyProgramKernel.Instance.SmartTextViewModel.SmartTextStateModel.YoutubeItemResults;
(SmartTextItemModelは、すべて文字列であるタイトル、説明、およびURLを含むための単純なクラスです。コンテキストについては、以前の質問を参照してください。)
もちろん、%service%ItemResultsオブジェクトのタイプはList <SmartTextItemModel>であり、SmartTextStateModelファイルではリストがnullに初期化されます。
私は他のファイルに次のMyProgramKernel.Instance.SmartTextViewModel.SmartTextStateModel.%service%ItemResults
ように各リストを変更するコードを持っています:
MyProgramKernel.Instance.SmartTextViewModel.SmartTextStateModel.%service%ItemResults = some new List of type SmartTextItemModel
辞書を初期化するのと同じファイルでリストがnullかどうかを確認しようとすると、
if (service_ListOfItems[ searchService ] == null) { ... } // searchService is "bingsearch", "wikipedia", or "youtube"
期待した結果が得られません。ifステートメントのステートメントは常に実行されます。ディクショナリのリスト値は、別のファイルに割り当てられていてもnullのままです。
私の望ましい動作は、私の辞書がでリストを参照することMyProgramKernel.Instance.SmartTextViewModel.SmartTextStateModel
です。これどうやってするの?