Сложная группировка по Value в Dictionary (C#)

100
23 декабря 2020, 21:20

Имеется класс:

public class ExportData {
    public Dictionary<string, object> DataHolder { get; set; }
    public ExportData() {
        DataHolder = new Dictionary<string, object>();
    }
}

Далее создаётся List подобных объектов, каждый из которых содержит ключ - название свойства (для всех объектов набор ключей одинаков) и значение - значение данного свойства для данного объекта.

Задача проста - сгруппировать всё это по нескольким полям.

Например, группировка по одному полю проходит спокойно:

var result = exportData.GroupBy(c => c.DataHolder["Field name 1"]).ToList();

Нужно что-то вроде подобного:

var groups = people.GroupBy(c => new {
    c.Country,
    c.Gender
});

Для класса со стандартными свойствами всё хорошо. Но для моего случая так не работает:

var result = exportData.GroupBy(c => new {
    c.DataHolder["Field 1"],
    c.DataHolder["Field 2"]
});

Ошибка: "Неверное определение члена анонимного типа. Члены анонимного типа должны быть объявлены присваиванием члена, простым именем или доступом к члену."

Как сделать эту группировку? Поля будут подбираться каждый раз новые, то есть вместо "Field 1" будет переменная.

Answer 1
var result = exportData.GroupBy(c => new
{
    Field1 = c.DataHolder["Field 1"],
    Field2 = c.DataHolder["Field 2"]
});
READ ALSO
Окно поверх других WinApi, C#

Окно поверх других WinApi, C#

Всем привет, автоматизирую программу для клиентаТ

128
Перезапись xml файла на c#

Перезапись xml файла на c#

Добрый день подскажите пожалуйста как изменить один из элементов xml файла и перезаписать, вот код

138
Rijndael ошибка инициализации вектора iv

Rijndael ошибка инициализации вектора iv

Не могу изменить ключ для шифрования и расшифровки пишет ошибку:

121
Быстрое преобразование Фурье и обратное преобразование

Быстрое преобразование Фурье и обратное преобразование

Я ищу реализацию БПФ наNET-совместных языках

101