0
我在使用SelectMany的以下查詢中苦於GroupBy和Sum。有人能告訴我如何總結兩個領域以及如何按幾個領域進行分組和排序。如何在LINQ中使用GroupBy和Sum?
var Rows = allData.SelectMany(u => u._rows.Select(t => new
{
OA = t[4],
CD = t[5],
PD = t[0],
DS = Convert.ToInt32(t[9]),
CS = Convert.ToInt32(t[10])
}))
// Pseudo-code:
//.GroupBy(CD)
//.GroupBy(OA)
//.GroupBy(PD)
//.Sum(u=> u.DS)
//.Sum(u => u.CS)
.OrderBy(u => u.CD)
.ThenBy(u => u.OA)
.ThenBy(u => u.PD)
.ToList();
對象:
List<DataProperty> allData = new List<DataProperty>();
DataProperty由
private readonly Dictionary<string, string> _headers = new Dictionary<string, string>();
private readonly List<string[]> _rows = new List<string[]>();
從ColdFusion的C#的重寫前的原始查詢:
SELECT OA, CD, PD, sum(DS) as DS sum(CS) as CS FROM qDistinct GROUP BY CD, OA, PD ORDER BY ucaseCD, OA, PD
如果GroupBy在以下不帶Sum的查詢中編碼不同,您是否也請告訴我該怎麼做?
var Rows = allData.SelectMany(u => u._rows.Select(t => new
{
OA = t[4],
PD = t[0]
}))
// Pseudo-code:
//.GroupBy(OA)
//.GroupBy(PD)
.OrderBy(u => u.OA)
.ThenBy(u => u.PD)
.ToList();
這是從ColdFusion重寫C#之前的查詢: – user2142250
請將它添加到您的問題中,以便能夠正確格式化。 –