我有一個List對象(超過250屬性的對象),我想做一個由兩列(字符串)組然後總結所有其餘(雙), 是有什麼解決辦法,以避免一個使之之一,並做到所有雙重屬性,Linq c#組/總結很多列
這份名單,我從XML文件中獲取它,而不是從數據庫中查詢
var xx = Data.MyList.GroupBy(grp => new MyObject()
{
Name = grp.Name,
Date = grp.Date,
}).Select(slt => new MyObject()
{
Name = slt.Key.Name,
Date = slt.Key.Date,
eq = slt.Sum(x=>x.eq),
eq1 = slt.Sum(x=>x.eq1),
eq2 = slt.Sum(x=>x.eq2),
eq3 = slt.Sum(x=>x.eq3),
.
.
.
eq250 = slt.Sum(x=>x.eq2505),
}).ToList();
感謝HimBromBeere這裏是解決方案
var grpBySub = Data.MyList.GroupBy(grp => new
{
grp.Name,
grp.Date,
}).Select(slt => new
{
slt.Key.Name,
slt.Key.Date,
Sums = typeof(MyObject).GetProperties().Where(y =>
y.Name != "Name" &&
y.Name != "Date" &&
).Select(p => new
{
p.Name,
Sum = slt.Sum(entity => ((double?)p.GetValue(entity, null)))
}).ToList()
}).ToList();
發表一些代碼,並顯示您的嘗試。 –
一個具有250個屬性的數據庫實體?聽起來很奇怪,也許你應該考慮規範你的數據結構? – HimBromBeere
您的意思是根據兩列或兩列分別根據一列進行單獨的劃勾嗎? – Codor