Возможно, я упускаю что-то тривиальное. У меня есть пара List<T>
и мне нужен один большой список из них, который является объединением всех остальных списков. Но мне нужны их ссылки в этом большом списке, а не только значения/копии (, в отличие от многих вопросов, которые я обычно нахожу в SO ).
Например, у меня есть это,
List<string> list1 = new List<string> { "a", "b", "c" };
List<string> list2 = new List<string> { "1", "2", "3" };
var unionList = GetThatList(list1, list2);
Предположим, я получаю нужный мне список в unionList
, тогда должно произойти это:
unionList.Remove("a"); => list1.Remove("a");
unionList.Remove("1"); => list2.Remove("1");
//in other words
//
//unionList.Count = 4;
//list1.Count = 2;
//list2.Count = 2;
Чтобы было понятно, это обычно происходит с
unionList = list1; //got the reference copy.
Но как мне поступить со вторым списком, list2
, чтобы добавить к unionList
?
Я пробовал Add
и AddRange
, но они явно клонируют, а не копируют.
unionList = list1;
unionList.AddRange(list2); //-- error, clones, not copies here.
и
foreach (var item in list2)
{
unionList.Add(item); //-- error, clones, not copies here.
}
Обновление:Я думаю, что спрашиваю что-то, что не имеет смысла, и что-то, что по своей сути невозможно в языке..