0

リストをフィルタリングする次の拡張メソッドが見つかりました。私はこれに非常に慣れていないので、誰かが私を助けることができるかどうかを確認したかった. このメソッドは正確な値を比較しますが、正確な比較の代わりに含むを使用したいです。何かご意見は

    public static IEnumerable<T> FilterByProperty<T>(this IEnumerable<T> source,string property,object value)
    {
        var propertyInfo = typeof(T).GetProperty(property);
        return source.Where(p => propertyInfo.GetValue(p, null) == value);
    }
4

1 に答える 1

0

==等号をに変更したい場合Contains。これを試して:

public static IEnumerable<T> FilterByProperty<T>(this IEnumerable<T> source,string property,object value)
    {
        var propertyInfo = typeof(T).GetProperty(property);
        return source.Where(p => propertyInfo
                                      .GetValue(p, null)
                                      .ToString() //be aware that this might be null
                                      .Contains(value));
    }
于 2013-04-04T06:29:10.743 に答える