我找到了以下扩展方法来过滤列表。我对此很新,因此我想检查是否有人可以帮助我。此方法比较精确值但我想使用包含而不是精确比较。任何想法
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);
}
答案 0 :(得分: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));
}