我有以下LINQ
分组条款。我想把钱分成几个月。它有效,但钱(Deckungsbeitrag - 德语格式:##,##
)总是0.我错过了改变格式或什么?我已在以下脚本中尝试过不同的转换:
var results = (from r1 in table.AsEnumerable() group r1 by new {
Geschäftspartner = r1.Field < string > ("Geschäftspartner"),
Kunde = r1.Field < string > ("Kunde_KZ"),
//Monat = r1.Field<string>("Monat")
}
into g select new {
Kunde_Kz = g.Key.Kunde,
Geschäftspartner = g.Key.Geschäftspartner,
Jan = g.Where(c => c.Field < string > ("Monat") == "7_2017").Sum(c => Convert.ToDouble((c.Field < string > ("Deckungsbeitrag").Replace(",", ".")))),
Feb = g.Where(c => c.Field < string > ("Monat") == "8_2017").Sum(c => c.Field < float > ("Deckungsbeitrag")),
March = g.Where(c => c.Field < string > ("Monat") == "9_2017").Sum(c => c.Field < double > ("Deckungsbeitrag"))
}).ToList();
修改 输入表就像
xyv |库特| 23,45 | 7_2017 |
因此,对于Money,某些客户(Kunden)的某些月份可能存在空值,所以我尝试了这个:
Jan = g.Where(c => c.Field<string>("Monat").Contains("/7_2017/")).Sum(c => (double?)c.Field<decimal>("Deckungsbeitrag")) ?? 0.0,
Feb = g.Where(c => c.Field<string>("Monat").Contains("/8_2017/")).Sum(c => (double?)c.Field<decimal>("Deckungsbeitrag")) ?? 0.0,
March = g.Where(c => c.Field<string>("Monat").Contains("/9_2017/")).Sum(c => (double?)c.Field<decimal>("Deckungsbeitrag")) ?? 0.0
但仍然只有0个物有所值...
网格中的输出:
Select KATHOPEGN2 "Katholische Kirchenstiftung ""Herz Jesu""" 0 0 0
Select IMGAECREU1 "Landgasthof ""In Gaertlein """ 0 0 0
Select 180GRGERA1 180 Grad-Event GmbH 0 0 0
Select RASSFBETZ1 1a autoservice Rass 0 0 0
Select ASDIEBAYR1 A. S. Dienstleistungen 0 0 0
Select VEOANAK a.n.a. Kreislaufwirtschaft 0 0 0
Select ABWASEGLO1 Abwasserzweckverband Trubachtal 0 0 0
Select OELMEPEGN1 Adolf Oelmeier 0 0 0
Select AECGMBADB1 AEC Alternative Energieconzepte GmbH 0 0 0
Select VLLASPEGN1 Afrim Vllasalija 0 0 0
Select AGIPSBAYR1 Agip Station Hoellrich 0 0 0