J'ai vu pas mal de façons de faire fonctionner LINQ dynamique pour le .GroupBy
, mais tous ceux que je vois semblent s'attendre à une entité codée en dur. Je veux reproduire ce qui suit LINQ comme dynamique:Utilisation de LINQ dynamique pour GroupBy sur DataTable
//need dynamic LINQ for this
var groupedRows = rows.GroupBy(z => new { make = z["make"], model = z["model"] })
.Select(x => x.Key);
Je voudrais être en mesure de faire exactement cela, ce qui rend l'ensemble de la fonction d'une chaîne:
var groupedRows = rows.GroupBy(z => "new { make = z[\"make\"], model = z[\"model\"] }")
Je me rends compte que si elle était seulement une entité régulière, je pouvais le faire
mylist.GroupBy(z => new { make = z.make, model = z.model }).Select(x => x.Key);
Si j'avais cette entité régulière, je pourrais utiliser Mitsu's dynamic GroupByMany. J'essaye d'obtenir ceci pour fonctionner avec un datatable régulier (pas fortement typé). Des idées?
Je serais absolument d'accord avec une solution de réflexion. Le problème, c'est évidemment la performance, et cela dépend de ce qui est nécessaire. Si c'était nécessaire sur chaque colonne de chaque rangée, je soupçonnerais que ce serait un problème. Si juste une fois, pas de problème. Je crois que nous atteindrons un maximum d'environ 500 lignes. – DougJones
Pouvez-vous me donner un exemple de 'lignes'? Est-ce juste un tas d'objets similaires? – BeemerGuy
C'est un datatable. <% DataTable dt = GetData(); var rows = dt.AsEnumerable(); %> – DougJones