我已经搜索了所有的论坛,但我没有找到我的问题的答案。也许我只是用错了关键字。假设我有一个类Foo:
class Foo
{
string a;
string b;
}Foo的许多实例现在保存在
BindingList<Foo> bf;然后我有了第二个类,它实现了Foo类型的对象之间的某种关系:
class Bar
{
Foo f1;
Relation r;
Foo f2;
}同样,类Bar的许多实例保存在
BindingList<Bar> bb;在我的程序中的某个时刻,我现在删除了Foo的一个实例,比如f7。
bb.Remove(f7);有没有可能删除那些包含f7引用的Bar实例?此时,我挂接到bf的ListChanged事件,手动遍历bb并杀死那些包含f7的Bar实例。有没有更聪明的方法?
谢谢你的帮助,Guido
发布于 2013-03-20 22:38:55
从你的行动来看。我怀疑你想要这样的东西。您必须确保Bar中的Foo对象是同一实例,或者在Foo上实现IEquatable。
var barWhereFoosExist = bb.Where(x => x.f1.Equals(f7) || x.f2.Equals(f7));
foreach(Bar b in barWhereFoosExist)
{
bb.Remove(b);
}使用下面这样的代码尝试上面的代码。
BindingList<Bar> bb = new BindingList<Bar>();
Foo f7 = new Foo();
Bar b = New Bar();
b.f1 = f7;
b.f2 = new Foo();https://stackoverflow.com/questions/15526416
复制相似问题