C# 排除列分组LinQ求和的值

C# 排除列分组LinQ求和的值,c#,vb.net,linq,C#,Vb.net,Linq,我有我的数据表: ╔═══════════════╦═══════════════╦═══════════════╗ ║ CodTipoMoneda ║ idTipoCuenta ║ Saldo ║ ╠═══════════════╬═══════════════╬═══════════════╣ ║ 002 ║ 10 ║ 854 ║ ║ 003 ║ 21 ║

我有我的数据表:

╔═══════════════╦═══════════════╦═══════════════╗
║ CodTipoMoneda ║ idTipoCuenta  ║      Saldo    ║
╠═══════════════╬═══════════════╬═══════════════╣
║ 002           ║            10 ║           854 ║
║ 003           ║            21 ║           500 ║
║ 002           ║            10 ║           500 ║
║ 002           ║            22 ║           680 ║
║ 003           ║            20 ║           130 ║
║ 002           ║            30 ║            10 ║
║ 003           ║            12 ║             2 ║
╚═══════════════╩═══════════════╩═══════════════╝
我需要通过
CodTipoMoneda
Saldo
列组求和,我有这个代码(它正在工作!)

但我还想添加
where
条件,从
IDTIPOCUNTA
中排除一些值,例如从
IDTIPOCUNTA
中排除值
10和20

╔═══════════════╦═══════════════╦═══════════════╗
║ CodTipoMoneda ║ idTipoCuenta  ║      Saldo    ║
╠═══════════════╬═══════════════╬═══════════════╣
║ 002           ║            10 ║           854 ║ (not sum)
║ 003           ║            21 ║           500 ║
║ 002           ║            10 ║           500 ║ (not sum)
║ 002           ║            22 ║           680 ║
║ 003           ║            20 ║           130 ║ (not sum)
║ 002           ║            30 ║            10 ║
║ 003           ║            12 ║             2 ║
╚═══════════════╩═══════════════╩═══════════════╝
我不太了解,非常感谢您的帮助

使用Linq功能:

Dim query = From row In oDT.AsEnumerable()
            Group row By Moneda = 
            New With 
            {
                Key .CodTipoMoneda = row.Field(Of String)("CodTipoMoneda")
            } Into NameGroup = Group
                   Select New With 
                   {
                         .TipoMoneda = Moneda.CodTipoMoneda,
                         .Saldo = NameGroup.Where(Function(n) n.Field(Of Decimal)("Saldo") <> 10)
                                           .Sum(Function(r) r.Field(Of Decimal)("Saldo"))
                   }
Dim query=来自oDT.AsEnumerable()中的行
按Moneda分组行=
新的
{
Key.CodTipoMoneda=行字段(字符串)(“CodTipoMoneda”)
}进入名称组=组
选择“新建”
{
.TipoMoneda=Moneda.CodTipoMoneda,
.Saldo=NameGroup.Where(函数(n)n.字段(十进制)(“Saldo”)10)
.Sum(函数(r)域(十进制)(“Saldo”))
}
我的VB有点生锈,请随意调整。

使用Linq功能:

Dim query = From row In oDT.AsEnumerable()
            Group row By Moneda = 
            New With 
            {
                Key .CodTipoMoneda = row.Field(Of String)("CodTipoMoneda")
            } Into NameGroup = Group
                   Select New With 
                   {
                         .TipoMoneda = Moneda.CodTipoMoneda,
                         .Saldo = NameGroup.Where(Function(n) n.Field(Of Decimal)("Saldo") <> 10)
                                           .Sum(Function(r) r.Field(Of Decimal)("Saldo"))
                   }
Dim query=来自oDT.AsEnumerable()中的行
按Moneda分组行=
新的
{
Key.CodTipoMoneda=行字段(字符串)(“CodTipoMoneda”)
}进入名称组=组
选择“新建”
{
.TipoMoneda=Moneda.CodTipoMoneda,
.Saldo=NameGroup.Where(函数(n)n.字段(十进制)(“Saldo”)10)
.Sum(函数(r)域(十进制)(“Saldo”))
}
我的VB有点生锈,所以请随意进行相应的调整