Pour obtenir des valeurs distinctes, j'ai besoin d'un IEnumerable.Disitinct Dynamic Linq
var results = gridData.Select(r => r.ExplicitColumnName).Distinct();
Pour décider du nom de la colonne à exécution, je dois utiliser un IQueryable tel que requis par System.Linq.Dynamic.
var results = gridData.AsQueryable().Select(columnNameIsInThisVar);
Je veux que ma méthode pour revenir JSON donc pensé liste de chaînes, puis charger que dans un JsonResult. Mais j'ai des problèmes pour obtenir à la fois des valeurs distinctes et une flexibilité d'exécution sur la colonne.
Donc, je suppose que ma question est, dans LINQ, comment puis-je faire?
List<string> results = $"select distinct {columnName} from ridiculous_table_with_100_columns";
Update 1
Selon les commentaires, je l'ai maintenant installé LINQ dynamique en tant que package NuGet mais je ne peux toujours pas convertir à la liste.
filterValues = gridData.AsQueryable().Select(columnName).Distinct();
Ce qui me fait "Impossible de convertir implicitement le type 'System.Linq.IQueryable' à 'System.Collections.Generic.List'. Il existe une conversion explicite (vous manque un casting?)"
en ajoutant 'Distinct' à la fin (après' select')? Dynamic LINQ définit 'Distinct' sur' IQueryable'. –
Dynamic Linq ne fournit pas de méthode Distinct. Après la sélection, un IQueryable est renvoyé. Il a besoin d'être converti en IEnumerable mais je ne peux pas penser à un moyen de le faire sans le construire manuellement en itérant sur le IQueryable, auquel cas je pourrais tout aussi bien filtrer les doublons moi-même. – twelveFunKeys
Je vois public IQueryable Distinct (cette source IQueryable); 'inside' System.Linq.Dynamic.DynamicQueryable'. –