利用传入的泛型建立并回传泛型清单(List(Of T))

Posted petewell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用传入的泛型建立并回传泛型清单(List(Of T))相关的知识,希望对你有一定的参考价值。

利用传入的泛型建立并回传泛型清单(List(Of T))


Dotblogs 的标签:VB.Net ,随手记

今天请 Member 练习把 DataTable 转成 List,而且要做属性<->字段的对应,结果 member 搞了半天,跟我说遇到问题,他不知道要怎么建立泛型清单,结果我明明记得应该是 CreateInstance 方法,但却怎样都想不起该怎么做 ><。搞半天终于找到以前写的 Sample Code,所以还是赶快笔记下来,不然下次又要找半天……

Module Module1

    Sub Main()
        Dim PersonList = ToGenericList(New Person())
        PersonList.Item(0).Name = "XYZ"
        PersonList.Item(1).Name = "Leo"
        For Each p In PersonList
            Console.WriteLine(p.Name)
        Next

        Console.ReadLine()
    End Sub

    Public Function ToGenericList(Of T)(ByVal entity As T) As List(Of T)
        Dim GenericList As New List(Of T)
        Dim p1 As T = CType(Activator.CreateInstance(GetType(T)), T)
        GenericList.Add(p1)
        Dim p2 As T = CType(Activator.CreateInstance(GetType(T)), T)
        GenericList.Add(p2)

        Return GenericList
    End Function

End Module

Public Class Person
    Public Name As String
    Public Age As Integer
End Class

程序重点就是:用 Activator.CreateInstance 就行啦!

----------------

91 大提醒了更好的写法,用泛型条件约束的方式,就不用特别再 New 一个对象当参数,大感谢~~ 程序修正如下:

Module Module1

    Sub Main()
        Dim PersonList = ToGenericList(Of Person)()
        PersonList(0).Name = "XYZ"
        PersonList(1).Name = "Leo"
        For Each p In PersonList
            Console.WriteLine(p.Name)
        Next

        Console.ReadLine()
    End Sub

    Public Function ToGenericList(Of T As New)() As IEnumerable(Of T)
        Dim GenericList As New List(Of T)
        GenericList.Add(New T)
        GenericList.Add(New T)

        Return GenericList
    End Function

End Module

Public Class Person
    Public Name As String
    Public Age As Integer
End Class

--------
没什么特别的~
不过是一些笔记而已

原文:大专栏  利用传入的泛型建立并回传泛型清单(List(Of T))


以上是关于利用传入的泛型建立并回传泛型清单(List(Of T))的主要内容,如果未能解决你的问题,请参考以下文章

具有高阶函数的泛型

java 如何获得List的泛型类型

JAVA中list的泛型问题

Java基础——Java中的泛型(值得一看)

java5核心基础之泛型-泛型作用于编译阶段-怎样将String对象传入Integer类型的泛型对象中?

java中的泛型T与通配符?概念入门