VB Синтаксис для запроса LINQ, который создает новый набор {}? - PullRequest
0 голосов
/ 03 декабря 2009

Я пытаюсь СРЕДНЕЕ 6 различных полей в DataTable, но без группировки. Просто СРЕДНИЙ. Я нашел несколько примеров в 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 голосов
/ 03 декабря 2009

Если вы пытаетесь найти среднее значение, вам не следует использовать выбор для начала - это создаст новый результат для каждой строки, в то время как вам нужно всего два результата для всей таблицы. Я предлагаю вам сделать что-то вроде:

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"))
...