値を指定してキーを取得できません。私はこれを達成する最良の方法は何ですか?値からキーを取得 - 辞書<string、List <string>>
var st1= new List<string> { "NY", "CT", "ME" };
var st2= new List<string> { "KY", "TN", "SC" };
var st3= new List<string> { "TX", "OK", "MO" };
var statesToEmailDictionary = new Dictionary<string, List<string>>();
statesToEmailDictionary.Add("[email protected]", st1);
statesToEmailDictionary.Add("[email protected]", st2);
statesToEmailDictionary.Add("[email protected]", st3);
var emailAdd = statesToEmailDictionary.FirstOrDefault(x => x.Value.Where(y => y.Contains(state))).Key;
が予期しない動作のように、 'FirstOrDefault(...)。Key'は危険ではありませんが返されますがある場合? –
@ChrisMarisic 'OrDefault'ケースは、反復処理しているタイプのデフォルト値を返します。参照型の場合は 'null'ですが、値型の場合はその型の新しいインスタンスになります。 'KeyValuePair 'は値型(' struct')であるため、' OrDefault 'の場合はnull参照例外が発生しません。 'TKey'は' string'なので、その新しいインスタンスの '.Key'は' null'になります。 –