2016-06-22 9 views
-1

リストから列名をフェッチしたいと思います。私はクラスを持っているので、コントローラのいくつかの方法では、データをセッションに充填しています。今私は何らかの理由で列名を取得したい。私のセッションデータをそのリストに入れています。リストから列名を取得

List<DetailView> objgrdDtls = new List<DetailView>(); 
objgrdDtls = (List<DetailView>)Session["datasetVal"]; 

私は列名を持っています。私はその特定の列名の値を持っている以下のコードを行うことで注意してください。 restult1には列の値があります。

var result1 = objgrdDtls.Where(p => p.SiteName.ToLower().Contains(txt1)); 

しかし、必要なのは列名のみです。だから私はそれをどうやって得るのか?

stringColumnname = objgrdDtls.get(columnaname => some filter)? 

これはカラム名の取得方法ですか? 列名を1つずつ取得する方法がわかりませんか?おかげさまで

+0

(http://stackoverflow.com/questions/2820660/get-name-of-property-as-a-string)[文字列としてプロパティの名前を取得します] – demo

+0

の可能性のある重複。 Didntは上記のリンクの任意の情報を取得します – user3794063

答えて

0

Var result1は、 "SiteName.ToLower()。Contains(txt1)"という条件を満たすDetailViewオブジェクトのリストを提供します。それは価値ではありません。列の値の意味を明確にしてください。ただし、特定の列の値を選択するには、 ".Select(p => p.AssetStorage)"を追加できます。

+0

列の値は、それがそのデータを持っていることです、私は例えば、インドのようなデータがあるプロパティのSiteNameプロパティがあると言っています。今、私は列名、つまり、 'SiteName'、ItemType、AssetStorageのようなプロパティ名を取得したいと思います。これはクラス詳細ビューで宣言しました。 – user3794063

0

リフレクションを使用して列名を取得できます。 DetailViewの列名を取得するための実行可能な例を次に示します。私は、列名を欲しい

using System; 
using System.Reflection; 

public class DetailView 
{ 
    public string SiteName { get; set; } 
     public string ItemType { get; set; } 
     public string AssetStorage { get; set; } 


} 

    public class Example 
    { 
     public static void Main() 
     { 
      DetailView fieldsInst = new DetailView(); 
      // Get the type of DetailView. 
      Type fieldsType = typeof(DetailView); 

     PropertyInfo[] props = fieldsType.GetProperties(BindingFlags.Public 
      | BindingFlags.Instance); 


     for(int i = 0; i < props.Length; i++) 
     { 
      Console.WriteLine(" {0}", 
       props[i].Name); 
     } 
    } 
}