我在这种类型的VB.NET中有一个DataTable:
"Yr","Mnth","Period","Amount"
2016, 1, 2016-01, 550.36
2016, 1, 2016-01, 9000.79
2015, 12, 2015-12, 10000.30
2015, 12, 2015-12, 20
我想要做的是使用LINQ聚合这些数据,就像在SQL语言中一样:
SELECT Yr, Mnth, Period, SUM(Amount) AS Amount
GROUP BY Yr, Mnth, Period;
我曾尝试在VB.NET中使用LINQ,但还没有能够做到正确。 有人可以给我一些见解吗? 谢谢。
答案 0 :(得分:1)
Dim Amounts As New DataTable 'Your code to load actual DataTable here
Dim amountGrpByDates = From row In Amounts
Group row By dateGroup = New With {
Key .Yr = row.Field(Of Integer)("Yr"),
Key .Mnth = row.Field(Of Integer)("Mnth"),
Key .Period = row.Field(Of String)("Period")
} Into Group
Select New With {
Key .Dates = dateGroup,
.SumAmount = Group.Sum(Function(x) x.Field(Of Decimal)("Amount"))}
我假设Yr
和Mnth
的类型为Integer,Period
字符串和Amount
十进制。
如果它们与您的类型不同,请更改类型。
答案 1 :(得分:-1)
这是C#代码。
<style type="text/css">
.content {
width: 98%;
left: 1%;
margin-top: -10px;
}
.block_1 {
position: relative;
width: 18.5%;
height: 150px;
margin-left: 1%;
margin-top: 1%;
float: left;
background: #FFF;
border: 3px solid #999;
}
</style>