对集合中的某个字段进行排序的方法;使用集合的Sort()方法来声明个委托来进行比较;例如上面的例子,对集合中CodeDto类的code字段来进行排序;
foreach (PropertyInfo info in dtoV.GetType().GetProperties())
{
if (info.Name == dtoF.chkItemValue)
{
info.SetValue(dtoV, response.responseObjects[i].chkItemValue_cnName, null);
string name = string.Empty;
name = info.Name.Remove(0, 12);
dtoV.GetType().GetProperty("chkItemId" + name).SetValue(dtoV, response.responseObjects[i].id, null);
dtoV.GetType().GetProperty("chkItemName" + name).SetValue(dtoV, response.responseObjects[i].itemName, null);
dtoV.GetType().GetProperty("chkItemCode" + name).SetValue(dtoV, response.responseObjects[i].itemCode, null);
break;
}
}
利用反射机制来实现对字段的动态加载;dtoV.GetType().GetProperties() 用来获取PropertyInfo集合中的属性;
dtoV.GetType().GetProperty("chkItemId" + name).SetValue(dtoV, response.responseObjects[i].id, null);通过反射来给对应的字段赋值; 一下两个例子说明通过反射机制动态获取和设置动态字段: /通过反射机制动态为属性赋值;dtoV为对应的实体;response.responseObjects[i].id为动态 属性赋值对应的值来源;
string chItemid=dtoV.GetType().GetProperty("chkItemId" + name).SetValue(dtoV, response.responseObjects[i].id, null);
//通过反射机制获取动态属性对应的值;dto.dtoDetails[i]为对应的实体;"chkItemName" + name为实体中的动态字段;
string name=(string)dto.dtoDetails[i].GetType().GetProperty("chkItemName" + name).GetValue(dto.dtoDetails[i], null);
本文出自 “zhangjingjing” 博客,请务必保留此出处http://zhjjzhjj.blog.51cto.com/1802676/792888