用于创建新{}集的LINQ查询的VB语法?

时间:2009-12-03 17:04:17

标签: vb.net linq linq-to-objects

我正在尝试在DataTable上平均6个不同的字段,但没有分组。只是AVERAGE。我在C#中找到了几个例子,但是在VB中找不到任何关于如何做的例子。有人可以帮我转换语法吗?

这是我到目前为止所做的:

Dim query = From dtRow In dtIn.AsEnumerable _
                Where dtRow.Field(Of String)("FOLLOWUP") = "Alert" _
                Select New With { _
                    .Brand_Functional_Avg = XXX.Average(Function(f) f("Brand_Functional")), _
                    .Brand_Personal_Avg = XXX.Average(Function(f) f("Brand_Personal")) _
        }

我应该为XXX使用什么?我尝试了所有我能想到的选项,没有编译。

相信我,如果我能在C#中写这个,我会,但该项目需要VB。

1 个答案:

答案 0 :(得分:0)

如果你试图找到平均值,你不应该使用select来开始 - 这将为每一行创建一个新结果,而你只想要整个表的两个结果。我建议你这样做:

Dim filtered = From dtRow in dtIn.AsEnumerable _
               Where dtRow.Field(Of String)("FOLLOWUP") = "Alert"

Dim functionalAvg = filtered.Average(Function(f) f("Brand_Functional"))
Dim personalAvg = filtered.Average(Function(f) f("Brand_Personal"))