Inderpal Singh
Inderpal Singh

Reputation: 270

linq group by and order by on some list?

I have a list(avgEnergyObj) like

Timestamp | MeterID | Energy
----------------------------
190990001 |    1    | 98090.0
190990003 |    2    | 98909.3
190990002 |    2    | 99000.3
190990004 |    1    | 99900.9

i want to sort it by time stamp and group by meterID like -

Timestamp | MeterID | Energy
----------------------------
190990001 |    1    | 98090.0
190990003 |    2    | 99000.3
190990002 |    1    | 98909.3
190990004 |    2    | 99900.9

i have written something (not working) some error -

List<FetchingEnergy> avgEnergyObj2 =
    avgEnergyObj.GroupBy(p => p.MeterId)
                .Select(group =>
                    new {
                        meterID = group.Key,
                        FetchingEnergy = group.OrderBy(x => x.TimeStamp)
                    })
                .OrderBy(group => group.FetchingEnergy.First().TimeStamp);

Upvotes: 0

Views: 583

Answers (1)

Demarsch
Demarsch

Reputation: 1479

var sortedList = avgEnergyObj
    .OrderBy(x => x.MeterId)
    .ThenBy(x => x.TimeStamp)
    .ToList();

Upvotes: 1

Related Questions