2

LINQ を介して取得した一連のプロパティを含む IQueryable があるとします。これらのプロパティをループするにはどうすればよいでしょうか。

私が試してみました:

foreach (PropertyInfo propertyInfo in rows.GetType().GetProperties())
            {
                var value = propertyInfo.GetValue(this, null);
                var name = propertyInfo.Name;
            }

ただし、これは機能していないようで、何も返されません。IQueryable 内のすべてのプロパティの値の名前を取得する方法が必要です。

4

1 に答える 1

3

rowsがクエリの結果である場合は、 Type.GetGenericArgumentsを使用する必要があります。

var type = rows.GetType().GetGenericArguments().First();
foreach (PropertyInfo propertyInfo in type.GetProperties())
{
   //...

これは、結果がIQueryable<T>値そのものではなく になるためです。ジェネリック型を抽出すると、プロパティを明示的に取得できる可能性があります。

于 2013-11-01T21:27:42.257 に答える