我有一個大的數據集,我試圖按照一組字段對這個數據集進行分組。在這個數據集中,我有5個連續日期的行(餘額)。我的目標是返回一個自定義對象列表,其中包含一個帶有Key的IDictionary字段作爲日期和平衡值。我試過類似的東西:LINQ將一個列表分組並返回一個具有嵌入字典的自定義對象的列表
int[] DT = new int[] {20160725,20160726,20160727,20160728,20160729};
var tranformedData =
posData
.GroupBy(p => new {p.Symbol, p.Account})
.Select(gp => new TPosModel {
Symbol = gp.Key.Symbol,
Account = gp.Key.Account,
Balances = new Dictionary<int, decimal>{
{
gp.Where(gpi => gpi.BusDate == DT[0]).Select(gpi => gpi.BusDate),
gp.Where(gpi => gpi.BusDate == DT[0]).Select(gpi => gpi.Balance)
},
{
gp.Where(gpi => gpi.BusDate == DT[1]).Select(gpi => gpi.BusDate),
gp.Where(gpi => gpi.BusDate == DT[1]).Select(gpi => gpi.Balance)
},
.
.
.
}
此代碼導致重複鍵錯誤。我通過將字典轉換爲元組列表來實現這一目標,但這不是最終的結果。任何人都有關於如何完成這個請求的建議。
感謝
你可以顯示輸入類嗎?還有'TPosModel'類? –
@YacoubMassad,輸入從平面文件讀取,格式爲: 'List({Symbol =「ABC.D」,Account =「1234-0C」,BusDate = 20160725,Balance = 123.45},{Symbol = 「ABC.D」,帳戶=「1234-0C」,BusDate = 20160726,餘額= 125.67},{Symbol =「BCD.E」,帳戶=「2345-0D」,BusDate = 20160725,餘額= -2300.5}, {Symbol =「BCD.E」,Account =「2345-0D」,BusDate = 20160726,Balance = -2350.5})' 此列表需要轉換爲: 'List({Symbol =「ABC.D」 ,帳戶=「1234-0C」,餘額= {[20160725,123.45],[20160726,125.67]}},{Symbol =「BCD.E」,帳戶=「2345-0D」,餘額= {[20160725, - 2300.5] [20160726,-2350.5]}})' – skoppisetti