怎样把下面的代码转换成VB.NET的。谢谢

查了好多资料,都是用C#代码编写的方法,如下:publicstaticIList<T>convertToList<T>(DataTabledt)whereT:new()9... 查了好多资料,都是用C#代码编写的方法,如下:
public static IList<T> convertToList<T>(DataTable dt) where T : new()

9 // 定义集合
10 List<T> ts = new List<T>();
11
12 // 获得此模型的类型
13 Type type = typeof(T);
14 //定义一个临时变量
15 string tempName = string.Empty;
16 //遍历DataTable中所有的数据行
17 foreach (DataRow dr in dt.Rows)
18 {
19 T t = new T();
20 // 获得此模型的公共属性
21 PropertyInfo[] propertys = t.GetType().GetProperties();
22 //遍历该对象的所有属性
23 foreach (PropertyInfo pi in propertys)
24 {
25 tempName = pi.Name;//将属性名称赋值给临时变量
26 //检查DataTable是否包含此列(列名==对象的属性名)
27 if (dt.Columns.Contains(tempName))
28 {
29 // 判断此属性是否有Setter
30 if (!pi.CanWrite) continue;//该属性不可写,直接跳出
31 //取值
32 object value = dr[tempName];
33 //如果非空,则赋给对象的属性
34 if (value != DBNull.Value)
35 pi.SetValue(t, value, null);
36 }
37 }
38
39 ts.Add(t);
40 }
41 return ts;
42 }
展开
 我来答
包布丁
推荐于2016-08-07 · TA获得超过1358个赞
知道小有建树答主
回答量:1435
采纳率:25%
帮助的人:1227万
展开全部
    Public Function convertToList(Of T As New)(dt As DataTable) As IList(Of T)
        ' 定义集合
        Dim ts As New List(Of T)
        '定义一个临时变量
        Dim tempName As String = String.Empty
        '遍历DataTable中所有的数据行
        For Each dr As DataRow In dt.Rows
            Dim st As New T()
            ' 获得此模型的公共属性
            Dim properties() As PropertyInfo = st.GetType().GetProperties()
            '遍历该对象的所有属性
            For Each pi As PropertyInfo In properties
                tempName = pi.Name '将属性名称赋值给临时变量
                '检查DataTable是否包含此列(列名==对象的属性名)
                If dt.Columns.Contains(tempName) Then
                    If Not pi.CanWrite Then Exit For
                    '取值
                    Dim value = dr(tempName)
                    '如果非空,则赋给对象的属性
                    If Not value = DBNull.Value Then pi.SetValue(st, value, Nothing)
                End If
            Next
            ts.Add(st)
        Next
        Return ts
    End Function
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式