假设我有一个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/

10-13 05:38