怎么样使集合类既有索引又有键?

qbilbo 2009-12-12 12:08:39
例:
Public Class Person
Public Number As String '工号
Public Name As String '姓名
Public Age As Integer

Public Sub New(ByVal Num As String, ByVal Name As String, ByVal Age As Integer)
Me.Number = Num
Me.Name = Name
Me.Age = Age
End Sub

Public Sub New(ByVal Num As String)
Me.Number = Num
Me.Name = "未知"
Me.Age = 20
End Sub
End Class

Public Class PersonCollection
'Inherits System.Collections.Generic.List(Of Person)
Inherits System.Collections.Generic.Dictionary(Of String, Person)


Public Overloads Sub add(ByVal Num As String, ByVal Name As String, ByVal Age As Integer)
add(Num, New Person(Num, Name, Age))
End Sub

Public Overloads Sub add(ByVal Num As String)
add(Num, New Person(Num))
End Sub

Public Overloads Sub add(ByVal Psn As Person)
add(Psn.Number, Psn)
End Sub
End Class

这样PersonCollection只能用PersonCollection(工号)返回一个Person
如果用注释掉的继承List(Of T)只能用PersonCollection(Index)返回一个Person,而且不能保证集合内Person.Number唯一。

怎样才能使这2者共存?就象DataSet.Tables(index)和DataSet.Tables(表名)这样?
...全文
115 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qbilbo 2009-12-12
  • 打赏
  • 举报
回复
设置NUM唯一,具体怎么做呢?我曾经想过重写add,insert,加入验证,但我自己就没办法添加了。

其实我最想得到的是让一个集合类同时拥有Index和Key,就象DataTableCollection那样
wuyq11 2009-12-12
  • 打赏
  • 举报
回复
设置Num唯一
或通过索引,使用NAME,通过LINQ查询相关对象

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧