Удалить объект из двух списков по ссылке - PullRequest
0 голосов
/ 25 января 2019

У меня есть список 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.

1 Ответ

0 голосов
/ 25 января 2019

Я переименовал ваши классы (потому что моя голова просто отвергает класс с именем "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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...