我有這樣的代碼在這種情況下,我可以使用匿名類型嗎?
// was before var groupTransactions;
IEnumerable<IGrouping<TransactionsGroupedByMonthYear, TransactionDto>> groupTransactions = null;
DollarCapPeriod dollarCapPeriod = (DollarCapPeriod)Enum.Parse(typeof(DollarCapPeriod), reward.DollarCapPeriod);
switch (dollarCapPeriod)
{
case DollarCapPeriod.Monthly:
groupTransactions = filterdTransactions.GroupBy(x => new { x.TransactionDate.Month, x.TransactionDate.Year });
break;
case DollarCapPeriod.Yearly:
groupTransactions = filterdTransactions.GroupBy(x => new TransactionsGroupedByMonthYear { Month = 0, Year = x.TransactionDate.Year });
break;
default:
break;
}
我想要做這樣的事情,但它要初始化的類型。所以我想知道有沒有在這附近或我必須做某種具體類型?如果是這樣,我怎麼跟groupBy一起做呢?
樣本數據
1/14/2012,5,Gas
1/15/2012,5,Gas
1/16/2012,5,Gas
1/17/2012,5,Gas
編輯
目前我想現在要做的用一個具體的支持,但我需要通過兩種不同的方式進行篩選。有時我只需要「年」,有時我需要「月」和「年」
我不知道該怎麼做。他們都需要進入相同的變量,所以他們需要是相同的類型。
好吧那麼每年一次的開關如何。我只想按年分組,但仍然使用groupTransaction存儲它。在某些情況下,我需要按月份和年份進行分組,有時僅按年份分組。我想構建存儲LINQ的東西(認爲它會Func <>),然後在切換後將它傳遞給組,但我不知道如何做到這一點。 – chobo2
最簡單的選擇是按月份= 0對所有內容進行分組,因爲您對實際月份不感興趣。有些人可能會爭辯說,「幻數」方法是錯誤的,但替代方案遠不能維持,IMO。我會更新答案來展示這一點。 –
我曾想過這樣做,但它似乎從未將它們分組。當按「年」分組時,我沒有組1組,而是有28組。 – chobo2