2011-07-25 25 views
1

グリッドビューのユーザコントロールを作成しています。LinQ結果セットからカラム数とカラム名を取得する方法を知りたいと思います。これは、動的グリッドビューを作成するために使用されます。 LinQ結果セットのカラム数とカラム名を取得する

var myPerson = from persons in myLinQ.SamplePersons 
       select persons; 

そして、私のグリッドビューで

は、それが結果セットを受け取り、このプロパティを持っている:私はここにある何

はこれで一つのクラスです。

public IEnumerable<Object> SourceLinQ { get; set; } 

これを実行する方法はありますか?

答えて

2

どのようにこのようなものについて:

var resultType = 
    query.GetType() 
     .GetInterfaces() 
     .Where(x => x.IsGenericType && 
        x.GetGenericTypeDefinition() == 
         typeof(IEnumerable<>) 
     ) 
     .Single() 
     .GetGenericArguments() 
     .Single(); 

その後:

var columns = resultType.GetProperties(); 
int numberOfColumns = columns.Length; 
string[] columnNames = columns.Select(column => column.Name) 
           .ToArray(); 

これはテストされていない、と私もそれをコンパイルする場合(私はコンパイラ便利な権利を持っていないかわかりません今、申し訳ありません)。

+0

こんにちは!最初のコードは、渡す結果セットの単なる例です。だから、たとえば、私は渡されるクエリが何であるか分かりません。 – Musikero31

+0

@ムシケロ:コードを一読しましたか?それは完全に一般的です。 – jason

関連する問題