datagridview绑定list后过滤,该怎么解决

datagridview绑定list后过滤
有个datagridview绑定了一个List 如 List<Person>
person里面有
person.name
person.age

现在想多加个过滤,随时按需显示条件如(age<30的或age>30)的person集合。
求思路
------解决思路----------------------
用ObservableCollection类
------解决思路----------------------
一是从数据源上过滤,也就是数据库SQL语句上呗

二是从list里过滤呗,写点逻辑就可以了
------解决思路----------------------
把需要的信息做成参数传递到后台的查询方法中了,然后重新绑定
------解决思路----------------------

//30你可以在方法中作为变量
datagridview.DataSource = list.Where(p => p.age > 30).ToList();