У меня есть класс вроде
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;}
}
и иметь записи всех сотрудников в переписном слове
List<Employee> Employees;
и список строковых ключей, например
var Keys = new List<string>()
{
"Designation",
"Scale",
"DOB"
};
предположим, что элементы списка "Ключи" указаны пользователем, и пользователь может указать некие или многие ключевые элементы.
теперь я хочу Группировать всех "Сотрудников" с ключами, указанными в списке "Ключи" , и выбирать только свойства, указанные в "Ключах" плюс Сумма продаж для каждой группы.
из трех решений, которые я пытался использовать, после того, как он был применим, но не мог его использовать, потому что не знаю, как список "Ключи" будет преобразован в анонимный тип
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()
});