我有一个代表一组人的对象集,我想将它用作 DataGridView 控件的数据源。但在此之前,我想根据搜索字符串过滤一组人。因此,如果搜索字符串是“David John”,我希望保留“David Johnson”和“John Davidson”,而不是“John Williams”、“David Beckham”或“Al Green”。
这是我尝试过的:
MyObjectContext context = GetContext();
string searchBox = "John David";
Regex regex = new Regex("[a-zA-Z]+", RegexOptions.Singleline);
MatchCollection matches = regex.Matches(searchBox);
IQueryable<Owner> q = ce.Owner;
foreach (Match match in matches)
{
q = q.Where(o => o.FirstName.Contains(match.Value)
|| o.LastName.Contains(match.Value));
}
findOwnerDataGrid.DataSource = q.OrderBy(o => o.LastName);
但它似乎只适用于最后一场比赛“大卫”。
我怎样才能完成我需要做的事情?欢迎任何不同或更简单的解决方案。如果重要,网格是只读的,因此我不必担心绑定/编辑注意事项。