OrderItems可以有或沒有首選項。我想按優先級對我的訂單項進行分組。但只有一種類型的優先(4),否則它們應該屬於「空」組。按子分組劃分
此代碼有效,但其他編碼員告訴我,它很糟糕(但不建議解決方案)。我能做什麼 ?
public IEnumerable<IGrouping<Preference,OrderItem>> OrderItemsGrouped {
get {
var grouped = OrderItems
.GroupBy(item =>
{
var i = item.Preferences.FirstOrDefault(p => p.Preference.PreferenceGroup.Type == 4);
if (i != null) return i.Preference;
else
{
return null;
}
})
.OrderBy(k => { return k.Key == null ? -1 : k.Key.Order; });
return grouped;
}
}
除非'Preference'重寫'Equals',否則不能「按優先級分組」,因爲默認實現使用引用相等(因此不會有任何偏好與其他任何偏好相等)。可以? – Jon
是的,它確實ovveride – GorillaApe