C# linq group by和order by在某些列表中?

C# linq group by和order by在某些列表中?,c#,linq,group-by,sql-order-by,C#,Linq,Group By,Sql Order By,我有一个列表(avgenrgyobj),比如 我想按时间戳分类,按计量表分组,如- Timestamp | MeterID | Energy ---------------------------- 190990001 | 1 | 98090.0 190990003 | 2 | 99000.3 190990002 | 1 | 98909.3 190990004 | 2 | 99900.9 我写了一些东西(不工作)一些错误- List<Fet

我有一个列表(avgenrgyobj),比如

我想按时间戳分类,按计量表分组,如-

Timestamp | MeterID | Energy
----------------------------
190990001 |    1    | 98090.0
190990003 |    2    | 99000.3
190990002 |    1    | 98909.3
190990004 |    2    | 99900.9
我写了一些东西(不工作)一些错误-

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);
列出avgenrgyobj2=
avgenrgyobj.GroupBy(p=>p.MeterId)
.选择(组=>
新的{
meterID=group.Key,
FetchingEnergy=group.OrderBy(x=>x.TimeStamp)
})
.OrderBy(group=>group.FetchingEnergy.First().TimeStamp);

虽然表格的格式很好,但为什么不花些时间格式化实际代码并使其可编译呢?(
group
是一个保留的C#关键字,可能你的意思是
@group
)group by是用于linq的,我确信我认为第二个表中有一些错误,因为它没有排序,也没有分组。我希望它按照仪表id和每个仪表的时间戳进行分组。idIlya Ivanov表示您使用group作为变量的位置(您注意到它以蓝色突出显示)您应该使用类似g或x的东西,或者指定一个变量名,该变量名不是C语言中的保留字。关于您的问题,您显示的表不是按MeterID分组的,它们是按MeterID和Energy排序的,这可以通过avgenrgyObj1.OrderBy(e=>e.Energy)实现。然后按(m=>m.MeterID).编辑:刚刚看到Jakub的评论,他对排序的看法是正确的。我看了一下表格,认为你是在能源上排序的。与我在评论中所说的差不多,但我会说这是必需的。可能我只是在与you@Demarsch很好,但我想要AvgenrgyObj中的所有属性。不能吗我们有list而不是var吗?@DaveWilliams有没有其他的list属性的方法?var会返回什么结构?我想你需要去查一下var关键字。现在足以说明它只会按照你想要的顺序返回原始列表中任何对象的列表。
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);
var sortedList = avgEnergyObj
    .OrderBy(x => x.MeterId)
    .ThenBy(x => x.TimeStamp)
    .ToList();