我有一个 IGrouping 类型的对象,并且想在不更改对象类型的情况下对组内的元素进行排序。
换句话说,我有
var tmp = group.OrderBy(x => x);
有group
类型IGrouping<int, someanonymousclass>
,我也想tmp
成为类型IGrouping<int, someanonymousclass>
。
一种解决方法是将其更改为 Dictionary 或新的匿名类,但我希望 tmp 具体为 type IGrouping<int, someanonymousclass>
。
换句话说:我想对我的IGrouping<int, someanonymousclass>
对象的元素进行排序。如果我使用OrderBy
它会更改group
to的类型,IOrderedEnumerable
我将无法再访问group.Key
。我怎样才能维持这种类型group
?
例子:
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
在分组之前使用。不过,我不想那样做。