我有一个实体女巫有一些特性。我使用了类别 将类似属性分类为属性。`
[System.ComponentModel.Category("cat_name1")]
public string propname1 { get; set; }
[System.ComponentModel.Category("cat_name2")]
public string propname2 { get; set; }
我想将这些属性作为类别键入字典对象键 并重视属性列表
Dictionary<string, List<PropertyInfo>> variable_name= TypeDescriptor.GetProperties(new entityClass())
.Cast<PropertyDescriptor>()
.ToDictionary(s =>s.Category,TypeDescriptor.GetProperti[enter image description here][1]es(new entityClass())
.Cast<PropertyDescriptor()
.GroupBy(p=>p.Category).ToList<PropertyInfo>());
im收到此错误
这是一种创建Dictionary<string, List<string>
的方法。密钥将为categy名称,值将为字符串列表(如果您有两个或多个具有相同类别的属性(。
EntityClass entityClass = new EntityClass();
entityClass.propname1 = "abc";
entityClass.propname2 = "def";
System.ComponentModel.PropertyDescriptorCollection pdc = System.ComponentModel.TypeDescriptor.GetProperties(entityClass);
var dict = pdc.OfType<PropertyDescriptor>().GroupBy(x => x.Category).ToDictionary(x => x.Key, x => x.Select(p => p.GetValue(entityClass).ToString()).ToList());
编辑:我不确定这是否是您想要的结果,因为问题格式/结构差。请下次尝试更好地解释。
这就是我所做的。
Dictionary<string, Dictionary<string, AttributeCollection>> testingSectionFields =
TypeDescriptor.GetProperties(new PP_MainDataEntity())
.OfType<PropertyDescriptor>().ToList()
.GroupBy(cat => cat.Category)
.ToDictionary(c => c.Key, c1 => c1.ToDictionary(fld => fld.Name, fld1 => fld1.Attributes));
WICH Retreives实体属性 ->按类别属性对它们进行分组 ->获取特定于该属性的所有属性:(