我有一个 IGrouping 类型的对象,并且希望在不更改对象类型的情况下对组内的元素进行排序。
换句话说,我有
var tmp = group.OrderBy(x => x);
with group
存在类型IGrouping<int, someanonymousclass>
而且我要tmp
成为类型IGrouping<int, someanonymousclass>
以及。
一种解决方法是将其更改为字典或新的匿名类,但我希望 tmp 是特定类型IGrouping<int, someanonymousclass>
.
换句话说:我想对我的元素进行排序IGrouping<int, someanonymousclass>
目的。如果我使用OrderBy
它改变了类型group
to IOrderedEnumerable
我无法访问group.Key
不再了。我怎样才能维持这种类型group
?
Example:
var states = SimulationPanel.innerPanel.Children.OfType<StateBar>().Where(x => x.isSensorState())
.GroupBy(x => (SensorElement)x.BauplanElement,
x => new
{
Start = (decimal)(x.Margin.Left / SimulationPanel.Zoom),
Width = (decimal)(x.Width / SimulationPanel.Zoom),
State = x.State
});
var group = states.First();
var tmp = group.OrderBy(x => x.Start);
var key = tmp.Key; //This does not work, because tmp is not of type IGrouping
我知道我可以使用OrderBy
分组前。但我不想那样做。