刚看了CSDN中的一篇推荐的帖子,对于“我的标题”这个问题的经典代码: LINQ + .Net3.0的新赋值方法: using System.Collections.Generic; using System.Data; using System.Linq; using 我的应用程序.业务领域; public class MyExtensions { public List<User> ConvertToUsers(DataTable table) { return table.Rows.OfType<DataRow>().Select(r => new User { LogName = (string)r["用户名"], PasswordMD5 = (byte[])r["密码"], 已经使用流量 = (ulong)r["计费"] }).ToList(); } } 普通写法: using System; using System.Data; using System.Reflection; namespace Reflex { public class Fill { public static object DataRowFillObject(DataRow row,Type t) { if (row == null || t == null) return null; object result = null; try { result = Activator.CreateInstance(t); PropertyInfo[] ps = t.GetProperties(); FieldInfo[] fs = t.GetFields(); foreach (PropertyInfo p in ps) { p.SetValue(result, row[p.Name], null); } foreach (FieldInfo f in fs) { f.SetValue(result, row[f.Name]); } } catch { } return result; } } }