我有一个像这样的2类课程:
class Item1
{
}
class Item2
{
public Item1 item;
public Item2(Item1 it){
item = it;
}
}
然后我有一个包含Item1的列表:
List<Item1> item1list;
还有另一个包含Item2的列表:
List<Item2> item2list;
我做了这样的列表:
var it = new Item1();
item1list.Add(it);
item2list.Add(new Item2(it));
现在,我只想从item1list中删除一个元素,并丢失item2list中的引用(获取空值),就像这样:
item1list.Remove(it); // item1list lost the element
item2list.Select(i => (search query)) // Gives a null result
现在,item2list保留了我的Item1对象的副本。
答案 0 :(得分:1)
我重命名了您的班级(因为我的头拒绝了一个名为“ Item1”的班级)。所以,这是您的原始类,稍有修改:
class Class1 {}
class Class2 {
public Class1 Item { get; }
public Class2(Class1 item) {
Item = item;
}
}
然后是一些使用它们的代码:
var itemList1 = new List<Class1>();
var itemList2 = new List<Class2>();
var item1 = new Class1();
var item2 = new Class2(item1);
itemList1.Add(item1);
itemList2.Add(item2);
//you could put this in a method and do it as a single operation:
itemList1.Remove(item1);
itemList2.RemoveAll(i => i.Item == item1);