C# 此方法中缺少获取实体属性的内容
这总是假的。C# 此方法中缺少获取实体属性的内容,c#,asp.net-mvc,reflection,entity,C#,Asp.net Mvc,Reflection,Entity,这总是假的。 我复制粘贴了代码,所以我可能遗漏了什么。一些我看不见的东西。我找到了一个解决方案来检索所有属性名 if (prop.PropertyType.IsGenericType) private String[]GetProperties(EContent\u EcontentFields eContentField) { 列表=新列表(); Type=eContentField.GetType(); var properties=type.GetProperties()。其中(x=>x
我复制粘贴了代码,所以我可能遗漏了什么。一些我看不见的东西。我找到了一个解决方案来检索所有属性名
if (prop.PropertyType.IsGenericType)
private String[]GetProperties(EContent\u EcontentFields eContentField)
{
列表=新列表();
Type=eContentField.GetType();
var properties=type.GetProperties()。其中(x=>x.MemberType==MemberTypes.Property)。选择(x=>x.Name);
foreach(属性中的变量项)
{
如果(项!=null)
list.Add(item.ToString());
}
return list.ToArray();
}
var result=new List();
var type=eContentField.GetType();
foreach(type.GetProperties()中的var prop)
{
结果.添加(项目名称);
}
返回result.ToArray();
}
如果您对速度感兴趣,这大约是您的方法的两倍。
Ps:如果将foreach改为for循环,速度会快一点,但不会太快:)能否更具体地说明要检索的内容?我想找到一种方法来检索属性的所有名称,但找到了一个方法。谢谢速度永远是一件事。我会把它换成你写的。谢谢回复!答案被接受。
if (prop.PropertyType.IsGenericType)
private String[] GetProperties(EContent_EcontentFields eContentField)
{
List<String> list = new List<String>();
Type type = eContentField.GetType();
var properties = type.GetProperties().Where(x => x.MemberType == MemberTypes.Property).Select(x => x.Name);
foreach (var item in properties)
{
if(item != null)
list.Add(item.ToString());
}
return list.ToArray();
}
var result = new List<string>();
var type = eContentField.GetType();
foreach (var prop in type.GetProperties())
{
result.Add(prop.Name);
}
return result.ToArray();
}