c# dictionnaires se croisent

J'ai une question à propos de Linq /Lambda et le problème suivant:

J'ai deux dictionnaires, le primaire et le secondaire... Ces deux dictionnaires sont définis comme Clé=chaîne de caractères, Valeur=int. J'ai besoin de couper vers le bas le dictionnaire primaire si les TOUCHES croisent secondaire dictionnaire.

c'est à dire:

primaryDict = ["thing1", 33] ["thing2", 24] ["thing3", 21] ["thing4", 17] ["thing5", 12]

secondaryDict = ["thing1", 22] ["thing3", 20] ["thing4", 19] ["thing7", 17] ["thing9", 10]

resultDict = ["thing1", 33] ["thing3", 21] ["thing4", 17]

Ma tentative:

resultDict = primaryDict.Keys.Intersect(secondaryDict.Keys).ToDictionary(t => t.Key, t.Value);

De toute évidence, cela ne fonctionne pas car la primaryDict.Les touches.Se croisent, c'est de revenir une liste de clés... comment pourrais-je retrouver un nouveau dictionnaire, ou la paire de bas le dictionnaire primaire? Toute aide serait appréciée.

OriginalL'auteur Stewart Basterash | 2012-05-21