.NET对象从集合/枚举
问题描述:
答
这在技术上是两个完全不同的问题。
Q1 - 物体是否可以从集合中移除? 这很大程度上取决于正在使用的集合类。一个明显的要求是,包含的对象必须包含它所包含的集合的引用。另一个要求是枚举集合时不能发生。这可能不是你想要走的路。
Q2 - 数据绑定时可以跳过一个对象吗? 我不知道任何支持这个的内置集合类,但应该可以通过编写一个自定义枚举器(检查元素并跳过应该排除的元素)来容器类。
这就是说,它可能是更容易使用LINQ查询作为数据源:
List<Foo> foos = new List<Foo>();
var query = foos.Where(f => f.IsNotExcluded);
BindingSource bs = new BindingSource(query); // bind to query instead of foos
您也可以公开时,过滤列表的属性,如果你需要的是:
public class FooManager
{
private List<Foo> foos = new List<Foo>();
public IQueryable<Foo> OnlyEnabledFoos
{
return foos.Where(f => f.IsNotExcluded).AsQueryable();
}
}
希望这会有所帮助!