我有一个对象列表
Class Bundledtellingen
Property tTimestamp As String
Property tValue As Double
End Class
现在我试图通过tTimestamp和sum tValue对此列表进行分组。通过搜索类似的问题,很明显最好的方法是使用Linq。我把它放在一起:
Dim query = bundledlist.GroupBy( _
Function(telling) telling.tTimestamp, _
Function(telling) telling.tTimestamp, _
Function(ts, values) New With _
{.Key = ts, _
.Sum = values.Sum()} _
)
Using writer As StreamWriter = New StreamWriter("C:\test.txt")
For Each result In query
writer.WriteLine(result.Key & " " & result.Sum)
Next
End Using
据我所知,通过查看http://msdn.microsoft.com/en-us/library/bb534493.aspx#Y0处的示例,这应该可行,但我得到以下异常:“重载解析失败,因为没有可访问的'Sum'接受此数量的参数。”
答案 0 :(得分:0)
您已在GroupBy
来电中指定了一个不必要的参数。那个人:
Dim query = bundledlist.GroupBy( _
Function(telling) telling.tTimestamp, _
Function(ts, values) New With _
{.Key = ts, _
.Sum = values.Sum()} _
)
第一个是键选择器,第二个是结果选择器。
包含3个参数的通话具有附加值选择器,您选择Function(telling) telling.tTimestamp
两次 - 一次用于Key
,一次用于Value
。这就是您的Sum
无效的原因:您尝试在Sum
上致电telling.tTimestamp
。