.net 托卢库普、林克和索引
我有以下情况(VB.NET、.NET 4): 自定义对象的通用列表.net 托卢库普、林克和索引,.net,vb.net,collections,.net,Vb.net,Collections,我有以下情况(VB.NET、.NET 4): 自定义对象的通用列表字母(共字母) A、B、C、B、D 需要包含项及其索引的集合: A (0) B (1, 3) C (2) D (4) 一些尝试: Dim letters As New List(Of Letter) Dim query As ??? = letters.Select(Function(letter, index) _ New With {index, letter}) D
字母(共字母)
A、B、C、B、D
需要包含项及其索引的集合:
A (0)
B (1, 3)
C (2)
D (4)
一些尝试:
Dim letters As New List(Of Letter)
Dim query As ??? = letters.Select(Function(letter, index) _
New With {index, letter})
Dim lookup As Lookup(Of Letter, Integer)
lookup = letters (query).ToLookup(???
首先使用支持索引的重载创建字母和索引的元组(或KeyValuePair
)。然后使用为键和值使用选择器的重载
您可能需要向ToLookUp
提供IEqualityComparer
,或者重写Letter.Equals
和Letter.GetHashCode()
。这两个需要一起重写,以便它们是一致的,否则会得到错误的结果
Dim lookup = Enumerable.Range(0, letters.Count).ToLookup(Function(i) letters(i))