我读过很多关于这个主题的文章;其中以及最近.NET - 将通用集合转换为数据表 https://stackoverflow.com/questions/701223/net-convert-generic-collection-to-datatable。不幸的是,一切都无济于事。
我有一个通用的结构集合:
Private Structure MyStruct
Dim sState as String
Dim lValue as Long
Dim iLayer as Integer
End Structure
Dim LOStates As New List(Of MyStruct)
我需要用这个结构列表填充数据表,但不知道如何去做。我在 Visual Studio 2008 中使用 vb.net。
任何见解将不胜感激
您链接的代码假设成员被声明为属性。你没有申报财产。您可以使其与反射一起工作:
Imports System.Reflection
...
Public Shared Function ConvertToDataTable(Of T)(ByVal list As IList(Of T)) As DataTable
Dim table As New DataTable()
Dim fields() As FieldInfo = GetType(T).GetFields()
For Each field As FieldInfo In fields
table.Columns.Add(field.Name, field.FieldType)
Next
For Each item As T In list
Dim row As DataRow = table.NewRow()
For Each field As FieldInfo In fields
row(field.Name) = field.GetValue(item)
Next
table.Rows.Add(row)
Next
Return table
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)