怎样把下面的代码转换成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 } 展开
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 } 展开
1个回答
展开全部
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询