Bonjour,
Je souhaite, à partir d'un Dictionnaire, générer une Expression "LinQ compliant" pour une utilisation avec AMS.
Imaginons le bout de code suivant :
Comment parcourir/transformer cet objet en quelque chose d'exploitable par un Where "Linq" dont l'idée est de filtrer automatiquement ma row selon les champs dont le nom de colonne est la key du dictionnary et la value la value du Dictionnary.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dictionnary<string, string> filters = new Dictionnary<string, string>{ {"firstname", "Jean"}, {"lastname", "Paul"} }
En gros, partant de l'objet ci-dessus, je souhaiterais que le filtrage effectué soit comme si j'avais moi-même codé :
Sauf que je souhaiterais que ceci soit "dynamique" puisque je ne connais à priori pas ni la taille ni les "key" utilisées. Dans l'immédiat, la seule manière que je vois, mais qui ne me satisfait que moyennement, serait de se baser soit sur un Parser soit sur un gros Switch... mais peut-on faire mieux ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 myTable.Where(row => row.firstname == "Jean" && row.lastname == "Paul")....
En gros existerait-il un moyen de faire quelque chose comme :
Pour information, l'objet myTable est de type IMobileServiceTable<T> : http://msdn.microsoft.com/en-us/library/jj554297.aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach (KeyValuePair kvp in filters) { myTable.Where(row => row[kvp.Key] == kvp.Value) }
Par avance, merci
Partager