想问下大佬,这样的代码有木有什么地方可以优化一下的?
public static string GetDescription(this PropertyInfo propertyInfo)
{
var Attributes=propertyInfo.GetCustomAttributes(false);
if (Attributes.Count() > 0)
return ((DescriptionAttribute)Attributes.First()).Description;
else
return string.Empty;
}
public static IList<T> ConvertToList<T>(this DataTable dt) where T:new ()
{
IList<T> list = new List<T>();
string tempName = "";
T t = Activator.CreateInstance<T>();
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (DataRow row in dt.Rows)
{
t = Activator.CreateInstance<T>();
foreach(var item in propertys)
{
tempName = item.GetDescription();
if(dt.Columns.Contains(tempName))
{
if (!item.CanWrite)
continue;
var value = row[tempName];
if (value != DBNull.Value)
{
if (item.PropertyType.IsEnum)
{
var obj = Enum.Parse(item.PropertyType, value as string);
item.SetValue(t, obj, null);
}
else
item.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list;
}
找个orm框架吧.用起来比较方便.
我们这里只是用导入的时候需要把datatable转list