Ho una classe comeIEnumerable Raggruppa per utente specificato elenco dinamico di chiavi
public class Empolyee
{
public string Designation {get ;set;}
public string Discipline {get ;set;}
public int Scale {get ;set;}
public DateTime DOB {get ;set;}
public int Sales {get ;set;}
}
e hanno i record di tutti i dipendenti in un enumerabile dico
List<Employee> Employees;
e un elenco di chiavi stringa come
presuppongono che gli elementi della lista "Chiavi" siano specificati dall'utente e l'utente possa specificare no o molti elementi chiave.
ora voglio raggruppare tutti i "Dipendenti" con le chiavi specificate nell'elenco "Chiavi" e selezionare solo le proprietà specificate in "Chiavi" più Somma delle vendite per ciascun gruppo.
su 3 soluzioni ho cercato di utilizzare, a seguito guardato applicabile, ma non poteva usare perché non sanno come lista "chiavi" saranno convertiti tipo anonimo
Employees.GroupBy(e => new { e.Key1, e.Key2, ... })
.Select(group => new {
Key1 = group.Key.Key1,
Key2 = group.Key.Key2,
...
TotalSales = group.Select(employee => employee.Sales).Sum()
});
Perché il tuo ultimo pezzo di codice non è un vero pezzo di codice, ma qualcosa che si avvicina allo pseudo-codice? Perché vuoi definire questo elenco di chiavi separatamente? – BCdotWEB
@BCdotWEB il mio ultimo pezzo di codice non è reale perché per far funzionare questo codice ho bisogno di creare un tipo anonimo in fase di runtime dalle chiavi specificate dall'utente. Nel mio scenario attuale ho bisogno di presentare ai miei utenti un riepilogo delle vendite con diversi parametri per rispondere a domande come "Quante vendite hanno fatto i dipendenti di una specifica designazione" e "Quante vendite hanno fatto i dipendenti di specifica designazione con specifica disciplina" ecc. Quindi gli utenti selezionano in base a quali parametri vogliono ottenere il riepilogo. – Shahab