0
我一直在這一整天都在苦苦掙扎。如何在我的IQueryable類上使用SelectMany?
所以我的課看起來如下:
public class SupplierSummaryReport {
public string SupplierName { get; set; }
public decimal TurnOverValues { get; set; }
}
的LINQ到目前爲止是這樣的:
var data = (from i in _ctx.Invoices
where i.Turnover == true
where last5Years.Contains(i.InvoiceDate.Year)
select new {
Year = i.InvoiceDate.Year,
AccountName = i.AccountName,
Value = i.NetAmount_Home ?? 0
});
var y = data.GroupBy(r => new { r.Year, r.AccountName })
.Select(g => new APData.Audit.Models.ReportModels.SupplierSummaryReport {
SupplierName = g.Key.AccountName,
TurnOverValues = new List<decimal>{
g.Sum(r => r.Value)
}
});
這讓我看起來像這樣的數據:
{2014, "Test Supplier", 1}, {2012, "Test Supplier", 2}, {2015, "Test Supplier two", 5}, {2011, "Test Supplier two", 9}
我需要使用.SelectMany
來選擇SupplierName
和TurnOverValues
。不過,我需要把這些值轉換成一個類的單獨列表類似如下:
public class SupplierSummaryData {
public string SupplierName { get; set; }
public List<decimal> Values { get; set; }
}
我一直在尋找使用LINQ,但我一直沒能做到這一點迄今。我明白這個問題是非常具體的,但我沒有其他的轉向,如果你需要更多的信息,請留下評論。
預期輸出:
{"Test Supplier", {2,5}}, {"Test Supplier two", {5,6}}
'SupplierSummaryData'不包含一年。這是否意味着你不想在一年之前分組?你能展示一個預期產出的例子嗎? –
@YacoubMassad嗨,我現在不需要一年,不需要。檢查預期結果的編輯 –
在你的例子中,你將'SupplierSummaryReport.TurnOverValues'指定爲'List',然後將其定義爲'decimal' - 無法編譯(我認爲它只是一個複製/粘貼錯誤?) – Jamiec