2017-07-20 6 views
0

に存在しない場合、私はコレクションから検索された1つの述語を持って戻り、空、私はその後、私は空のすなわち「」nullでないを返すようにしたい私のクラスのプロパティがオブジェクトにないかどうかを確認したいです。プロパティは、クラス

Func<IModel, string> predicateField03 = s => s.GetType().GetProperty("Field03") != null && s.Field03.ToLower().Contains(filter.ToLower()) ? s.Field03.ToLower() : string.Empty; 
Field03 = nullをとしてオブジェクト内のクエリが返すの上

が、私はField03 =「のようになりたい」私が間違っているの は修正してください。

+0

https://dotnetfiddle.net/0KGjPAは私たちを表示します。 – mjwills

答えて

0

私は1つの問題はIModelを、特定の性質を持っている場合は、チェックしていると、あなたはそれがIModelをの一部であるかのようにそのプロパティにアクセスしようとしているので、それは私には意味がないということがあると思います。

あなたにもリフレクションを使用して値を取得しようとすることができます:

public class Program 
{ 
    public interface IModel {} 

    public class Model1 : IModel{} 
    public class Model2 : IModel { 
     public string Field03 {get;set;} 
    } 
    public static void Main() 
    { 
     Func<IModel, string> predicateField03 = s => s.GetType().GetProperty("Field03") != null && s.GetType().GetProperty("Field03").GetValue(s).ToString().ToLower().Contains("33") ? 
      s.GetType().GetProperty("Field03").GetValue(s).ToString() : string.Empty; 

     Console.WriteLine(predicateField03(new Model1())); 
     Console.WriteLine(predicateField03(new Model2(){Field03 = "333"})); 

    } 
} 

フィドル:あなたがそのコードを呼び出しているか

関連する問題