В BindingList есть метод Extension;AsQueryable ().Таким образом, вы можете использовать
list.AsQueryable();
Но если вы хотите выполнить поиск по всем критериям, вы можете создать поиск, который использует экземпляр MyObject в качестве критерия поиска, а затем сгенерировать набор результатов на основе критериев в объекте.используя стандартную ссылку.
Например:
public List<MyObject> Search(MyObject SearchCriteria)
{
BindingList<MyObject> list = new BindingList<MyObject>();
list.Add(new MyObject("Test", "Boston"));
list.Add(new MyObject("Test2", "Atlanta"));
IEnumerable<MyObject> results = list.AsEnumerable();
if (!String.IsNullOrEmpty(SearchCriteria.Name))
results = results.Where(l => l.Name.Contains(SearchCriteria.Name));
if (!String.IsNullOrEmpty(SearchCriteria.City))
results = results.Where(l => l.City.Contains(SearchCriteria.City));
return results.ToList();
}
Таким образом, в дальнейшем у Results1 будет 2 результата, а у Results 2 - только 1.
List<MyObject> results1 = Search(new MyObject("Test", ""));
List<MyObject> results2 = Search(new MyObject("Test", "Boston"));
Iв качестве примера использовал простую структуру MyObject:
public class MyObject
{
public MyObject(string name, string city)
{
this.Name = name;
this.City = city;
}
public string Name { get; set; }
public string City { get; set; }
}