2010-02-17 3 views
0

J'ai une structure de données définie comme:
Dictionary<Guid, List<string>> _map = new Dictionary<Guid, List<string>>();Comment créer une expression lambda pour un générique imbriqué en C#?

Je suis en train de créer une expression lambda qui donne une chaîne, retourne un IEnumerable de Guids associée à une List<string> contenant cette chaîne. Est-ce raisonnable/possible ou devrais-je utiliser une structure de données plus appropriée?

Merci d'avance!
Kim

+0

Utilisez-vous le dictionnaire en arrière? Je veux dire que vous voulez la clé donnée les valeurs? –

Répondre

3

Essayez les options suivantes

Func<string,IEnumerable<Guid>> lambda = filter => (
    _map 
     .Where(x => x.Value.Contains(filter)) 
     .Select(x => x.Key)); 

Utilisation

var keys1 = filter("foo"); 
var keys2 = filter("bar"); 
+0

C'est tout! Juste un petit changement dans l'utilisation de: var keys1 = lambda ("foo") m'a sauvé une tonne de temps - merci! –

Questions connexes