Сгруппировать по словарю LINQ

Создайте хранимую процедуру, которая принимает значение @id как параметр и выполняет обе эти вещи. Затем вы используете DbDataAdapter для вызова хранимой процедуры.

0
задан Kingsley 19 March 2019 в 23:08
поделиться

1 ответ

Из вашего описания кажется, что вы используете словарь для представления видов «полей» / «свойств» и их значений, и что они связаны с каждым:

Словарь содержит ключ «date» со значением DateTime и различными другими ключами, которые соответствуют значениям десятичных чисел

В этом случае вам лучше создать собственный класс с каждым из этих ключей в качестве отдельного свойства класса. Примерно так:

public class YourClass 
{
    public Date DateTime { get; set; }
    public int SomeProperty1 { get; set; }
    public int SomeProperty2 { get; set; }
    // ....
}

Как только вы это сделаете, вместо List<Dictionary<string,object>> получите List<YourClass>. Теперь будет легко выполнить требуемый linq:

Я хочу сгруппировать по дате и сделать среднее для каждого десятичного числа.

var result = listOfCustomTypes.GroupBy(i => i.DateTime)
                              .Select(g => new YourClass {
                                  Date = g.Key,
                                  SomeProperty1 = g.Average(i => i.SomeProperty1),
                                  SomeProperty2 = g.Average(i => i.SomeProperty2),
                              });

И последнее, поскольку ваши данные изначально имеют формат JSON, вы можете:

0
ответ дан Gilad Green 19 March 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: