0
我试图以通用的方式实现GroupBy函数,并且每次客户端需要添加/更改某些内容时都不必保持添加属性(是,我知道还有其他的选择,有限的时间/预算将范围限制在这个范围或硬编码更多的属性,所以我试图选择更好的解决方案)。在VB.Net中实现自定义GroupBy函数
目前我有以下;
<!-- language: lang-vb -->
Dim groupByColumns = New Dictionary(Of String, Boolean) From {
{"Col1", True},
{"Col2", False},
...
}
Dim groupedData = data.GroupBy(Function(r)
Dim groupingResult = New List(Of KeyValuePair(Of String, Object))
For Each column In groupByColumns
Dim groupingValue As Object = Nothing
If column.Value Then
groupingValue = TypeDescriptor.GetProperties(r).Item(grouping.Key).GetValue(r)
End If
groupingResult.Add(New KeyValuePair(Of String, Object)(column.Key, groupingValue))
Next
Return groupingResult
End Function)
如果我那么做一个OrderBy
或Select
它似乎是返回一个IGrouping
,这正是我所期望的,只有在data
对象的两个数据行仍然未分组,即使它们是相同的。我不在google-fu,任何人都可以协助吗?
当然!这是诀窍,谢谢。 – Trent