1
我正在嘗試圍繞如何在我的代碼中處理這一點LINQ。最終目標是輸出總和(工作正常)以及與這些總額相關的人的姓名。在分組的單個LINQ查詢中選擇十進制和字符串匿名類型
舉例來說,如果亞當和布拉德做一筆交易,它應該輸出類似:
Adam and Brad made $50/£20 profit
所有這些信息都存儲在多個表的數據庫中,並通過合作伙伴ID分組。它看起來像這樣:
var Profit = (from Yield in Total
join w in totalsDB.wager on Yield.wager_id equals w.id
join p in totalsDB.partnership on w.partnership_id equals p.id
join e1 in totalsDB.employees on p.employee1_id equals e1.id
join e2 in totalsDB.employees on p.employee2_id equals e2.id
group Yield by p.partnership_id into set
select new
{
Partnership = set.Key,
USD = set.Sum(s => (decimal)s.p_and_l/(decimal)s.exchange_usd),
GBP = set.Sum(s => (decimal)s.p_and_l/(decimal)s.exchange_gbp),
size = set.Sum(s => (decimal)s.size/(decimal)s.exchange_gbp),
Employee1 = set.Select(s => s.e1.name),
Employee2 = set.Select(s => s.e2.name)
}).ToList();
我有一種感覺,這個問題可以是與我,或者可能與我想選擇的方式加入的職員表的兩倍的方式。
然後我試圖輸出在以下幾個方面(曾經嘗試都雖然他們「大多是」工作......員工姓名被踢我的牙齒:
foreach (var partnerYield in Profit)
{
string[] partYield = new string[] { "{0} and {1} made ${2:#,0}/£{3:#,0} profit", partnerYield.Employee1.ToString(), partnerYield.Employee2.ToString(), partnerYield.USD.ToString(), partnerYield.GBP.ToString() };
listview_partnerYield.Items.Add(partnerYield.Partnership.ToString()).SubItems.AddRange(partYield);
// OR
txt_partnerYield.Text += string.Format("{0} and {1} made ${1:#,0}/£{2:#,0} profit" + System.Environment.NewLine, partnerYield.Employee1, partnerYield.Employee2, partnerYield.USD, partnerYield.GBP);
}
因爲它的立場,它或者根本不返回空值工作員工ID,或在文本/列表字段輸出system.anonymous類型。
任何和所有幫助將不勝感激。
親切的問候。