Enfer à tous!
J'ai essayé toutes les variantes connues pour filtrer avec Contains
, mais jusqu'à présent, pas de chance.
MÉTHODE # 1
ret = ret.Where("CaseID.Contains(@0)", {15, 16, 17})
Obtient l'erreur suivante:
System.Linq.Dynamic.ParseException: 'Aucune méthode applicable' Contient 'n'existe dans le type' Int32? ''
MÉTHODE # 2
ret.Where("@0.Contains(outerIt.CaseID)", {15, 16, 17})
Apportez l'erreur suivante:
System.Linq.Dynamic.ParseException: 'Non' il 'est dans la portée'
Alors, comment puis-je filtrer par une liste ou un tableau?
J'utilise la dernière bibliothèque System.Linq.Dynamic dans nuget 1.0.7
ce qui suit fonctionnera, mais vous devez vous assurer que CaseID
et les valeurs du tableau ont le même type.
ret.Where("@0.Any(outerIt.CaseID=it)", array)
Je ne sais pas si je comprends bien votre question. Mais voulez-vous dire quelque chose comme ça? Ceci est résolu avec une expression lambda.
var listA = new[] {1, 2, 3, 5, 8};
var listB = new[] {1, 3, 5, 7, 11};
var res = listA.Where(itemA => listB.Contains(itemA));
// res = {1,3,5}