如何在 c# linq 中使用交叉选项卡查询
本文关键字:选项 查询 linq | 更新日期: 2023-09-27 18:31:38
var TatalFeeCollectionDetail = new List<lcclsTotalFeeCollectionDetail>();
TatalFeeCollectionDetail = (from t in .......
group t by new { t.MonthName,t.FeeParticularName }
into grp
select new lcclsTotalFeeCollectionDetail
{
Month = grp.Key.MonthName,
Particular = grp.First().FeeParticularLedgerName,
Amount = grp.Sum(t => t.Amount),
}).ToList();
dgvTotalFeeCollectionDetail.DataSource = TatalFeeCollectionDetail;
我的结果是这个......
Month particular Amount
April b 1
April c 2
April d 1
April e 2
April f 1
我想像这样转换它,任何1可以帮助我......我搜索它,但不明白该怎么做....
Month b c d e f Total Amount
April 1 2 1 2 1 7
提前感谢
你不能。这意味着创建一个具有可变数量的属性的匿名类型,这在强类型的 C# 中是不可能的。
您当然可以做的是将"特定"值存储在字典中并获得类似
Month particular Total
April {{b, 1}, {c, 2}, {d, 1}, {e, 2}, {f, 1}} 7
问
了将近九年:您可以尝试组加入组依据
string[] particulars = TatalFeeCollectionDetail.Select(x => x.FeeParticularName ).Distinct().ToArray();
var crossTabbedData=TatalFeeCollectionDetail.GroupBy(TFCD => TFCD.Month).Select(TFCD => new {Month=TFCD.Key,RowData=particulars.GroupJoin(TFCD, p => p, t => t.FeeParticularName, (p, t) => t.Count() == 0 ? 0 : t.Sum(fn => fn.Amount)).ToList()}).ToList();
应该产生您想要的东西,但可能没有列标题。