Non riesco a ottenere la chiave specificando un valore. Qual è il modo migliore per ottenerlo?Ottieni la chiave dal valore - Dizionario <stringa, Lista <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;
non è 'FirstOrDefault (...). Key' pericoloso, come in un comportamento imprevisto quando si verifica "OrDefault" qui ? –
@ChrisMarisic Il caso 'OrDefault' restituisce il valore predefinito del tipo su cui si sta iterando. Per i tipi di riferimento, è 'null', ma per i tipi di valore, sarà una nuova istanza di quel tipo. Poiché 'KeyValuePair' è un tipo di valore (ad esempio una 'struct'), il caso 'OrDefault' non genererà un'eccezione di riferimento null. Dato che 'TKey' è' stringa', '.Key' di quella nuova istanza sarà' null'. –