У меня есть класс Item, как
public class Item
{
public int Id {get;set;}
public string Name {get;set;}
public string PartialDescription {get;set;}
public string FullDescription {get;set;}
public doulbe Price {get;set;}
}
Я хотел бы иметь динамический пользовательский метод запроса SearchOverAnyFields (), который может принимать любое количество свойств объекта Item, таких как:
// key is an input string variable
// one query
var results = myItems.SearchOverAnyFields(x => x.Name.Contains(key) || x.PartialDescription.Contains(key) || x.Price.ToString().Contains(key));
// or another query
var results2 = myItems.SearchOverAnyFields(x => x.Name.Contains(key) || x.PartialDescription.Contains(key) || x.Price.ToString().Contains(key)
|| x.FullDescription.Contains(key));
// or another query
var results3 = myItems.SearchOverAnyFields(x => x.PartialDescription.Contains(key) || x.FullDescription.Contains(key));
Пожалуйста помоги.
Я не совсем уверен, что вы ищете здесь - желаемая функциональность может быть легко достигнута с помощью оператора Where
.
var results = myItems.Where(x => x.Name.Contains(key) ||
x.PartialDescription.Contains(key) || x.Price.ToString().Contains(key));
// or another query
var results2 = myItems.Where(x => x.Name.Contains(key) ||
x.PartialDescription.Contains(key) || x.Price.ToString().Contains(key)
|| x.FullDescription.Contains(key));
// or another query
var results3 = myItems.Where(x => x.PartialDescription.Contains(key) ||
x.FullDescription.Contains(key));
Это соответствует вашему требованию?