LINQ - объединяет текущие и предыдущие данные в одну строку - PullRequest
0 голосов
/ 08 октября 2018

У меня есть задача: показать в одной строке данные за текущий и предыдущий период

Например:

Продавец: XXX

Валюта: EUR

Период: 01.2018

Общее количество: 4

Общая сумма: 40,00

Предыдущее общее количество: 3

Предыдущее общее количество: 30,00

Я создал соответствующий класс со всеми необходимыми полями и написал два запроса с разными датами.В первом запросе я заполняю поля Общее количество & Общее количество .В других - Предыдущее общее количество & Предыдущее общее количество

Как объединить соответствующие строки (например, 01.2018 и 01.2017) в один ряд?

Я написал следующий компаратор:

class MyDataComparer : IEqualityComparer<MyData>
{
    public bool Equals(MyData x, MyData y)
    {
        return x.Seller == y.Seller && x.Currency == y.Currency && x.Month == y.Month && x.Year -1 == y.Year;
    }

    public int GetHashCode(MyData myModel)
    {
        return myModel.Seller.GetHashCode();
    }
}

И используйте его как

var result = currentPeriod.Union (previousPeriod, new myDataComparer ());

Но при этом не накапливаются соответствующие данные в одной строке.Он просто добавил строки из предыдущего периода в строки текущего периода.

Заранее спасибо.

...