Vb.net 将模型集合作为输出返回
我只是尝试创建一个函数来返回一组用户信息。但是,为了能够在以后将项目添加到集合中,我使用了arrayList,但最后我得到了一个Vb.net 将模型集合作为输出返回,vb.net,collections,model,Vb.net,Collections,Model,我只是尝试创建一个函数来返回一组用户信息。但是,为了能够在以后将项目添加到集合中,我使用了arrayList,但最后我得到了一个类型的错误arrayList无法转换为一维用户数组 这是我的密码: Function getDoctorsList() As Users() Dim userCollection As New ArrayList Dim sql = "SELECT * FROM '" + _tblName + "' WHERE usertype = 'doctor'"
类型的错误arrayList无法转换为一维用户数组
这是我的密码:
Function getDoctorsList() As Users()
Dim userCollection As New ArrayList
Dim sql = "SELECT * FROM '" + _tblName + "' WHERE usertype = 'doctor'"
Dim dr As SqlDataReader = dbHelper.ExecuteAndGetReader(sql)
While dr.Read
Dim user As New Users
user.Id = IIf(IsDBNull(dr("id")), 0, dr("id"))
user.UserName = IIf(IsDBNull(dr("username")), "", dr("username"))
user.UserNin = IIf(IsDBNull(dr("user_nin")), 0, dr("user_nin"))
user.UserType = IIf(IsDBNull(dr("usertype")), "", dr("usertype"))
user.Password = IIf(IsDBNull(dr("password")), "", dr("password"))
userCollection.Add(user)
End While
Return userCollection
End Function
如何解决这些问题?让您的方法返回一个
数组列表
:
Function getDoctorsList() As ArrayList()
Return userCollection.ToArray()
从ArrayList
中创建一个数组
:
Function getDoctorsList() As ArrayList()
Return userCollection.ToArray()
或者,最好的解决方案是让您的方法返回一个IEnumerable(Of User)
您还应该使用列表(用户)
而不是数组列表
,因为它是类型安全的(而且更清晰),并且还实现了IEnumerable(用户)
编辑 使用
IEnumerable(用户数)
和:
如果您以后真的需要将其他用户添加到方法之外的集合中,您可以使用
IEnumerable(Of User)
创建一个List
列表,就像Dim List=new List(Of User)(getDoctorsList())
一样简单,或者让您的方法返回一个列表(Of User)
,但是我会坚持使用IEnumerable(Of User)
,因为这是最干净的方法,事实上我对这方面非常熟悉,所以我不知道如何使用IEnumerable。你能在你的答案上加一个例子吗?好的,我知道了。现在你能告诉我,如何定义一个DropDownList来使用这个列表,以及如何为文本和值指定字段吗?我添加了一个如何使用DataRowExtensions的示例,如果你使用这样的东西,它会很方便。也许你觉得它有用。