假设我有一个IQueryable,其中包含通过LINQ获得的一堆属性,如何遍历这些属性?
我试过了:
foreach (PropertyInfo propertyInfo in rows.GetType().GetProperties())
{
var value = propertyInfo.GetValue(this, null);
var name = propertyInfo.Name;
}
虽然这似乎不起作用,但没有任何返回。我需要一种方法来检索IQueryable内部所有属性的值的名称。
最佳答案
如果rows
是查询的结果,则需要使用Type.GetGenericArguments:
var type = rows.GetType().GetGenericArguments().First();
foreach (PropertyInfo propertyInfo in type.GetProperties())
{
//...
这是因为结果将是
IQueryable<T>
,而不是值本身。提取泛型类型可能会允许您显式获取属性。关于c# - 遍历IQueryable的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19735645/