2016-04-27 9 views
0

私は、動的なプロパティ選択でコレクションをフィルタリングする必要があります。C#の動的プロパティ選択でリストをフィルタリングするにはどうすればよいですか?

例:

public class NotificationListModel : Observable 
{ 
    private string _QMTXT; 

    public string QMTXT 
    { 
     get { return _QMTXT; } 
     set { _QMTXT = value; RaisePropertyChanged("QMTXT"); } 
    } 
    private string _PRIOK; 

    public string PRIOK 
    { 
     get { return _PRIOK; } 
     set { _PRIOK = value; RaisePropertyChanged("PRIOK"); } 
    } 
    private string _ARBPL; 

    public string ARBPL 
    { 
     get { return _ARBPL; } 
     set { _ARBPL = value; RaisePropertyChanged("ARBPL"); } 
    } 
    private string _id; 

    public string id 
    { 
     get { return _id; } 
     set { _id = value; RaisePropertyChanged("id"); } 
    } 

}

そして私は、レコードのカップルを持っている、収集NotificationCollectionを持っているので、私は異なる特性を持つこのコレクションをフィルタリングする必要があり、それらは、

以下のように固定されていません

例1:

var Result = NotificationCollection.Where(w =>(w.QMTXT=="1" || w.QMTXT=="2") && w.PRIOK == "1").ToList(); 

Exampl E2は動的になりリストプロパティをフィルタリングしながら、ここ

var Result = NotificationCollection.Where(w =>w.id=="1" && w.PRIOK == "1").ToList(); 

、それはQMTXTまたはプリオク又はQMTXT及びプリオクおよびいくつかの他のプロパティを組み合わせてフィルタリングすることができます。 どうすれば実現できますか? 私はたくさんの研究をしましたが、私は反射を使ってこれを行うことができることを知りに来ましたが、私はReflectionにそれほどの範囲を持っていません。

あなたの助けは非常に感謝しています。 ありがとうございます。

答えて

0

System.Linq.Dynamicがあなたのためかもしれません:https://dynamiclinq.codeplex.com/documentation 私は最近Linq経由でORDER BYステートメントで同様の問題がありました。 Linq.Dynamicではフィールドの順序とそれぞれの基準を変更することができました。

関連する問題