代码之家  ›  专栏  ›  技术社区  ›  Chris Chubb

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

  •  0
  • Chris Chubb  · 技术社区  · 16 年前

    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使用什么?我尝试了我能想到的所有选项,但没有任何结果。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Jon Skeet    16 年前

    如果您试图找到平均值,那么不应该使用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"))