C# Lists reference with two?

I need 2 lists which are separate and one list containing the items of these two lists.

List<int> list1 = new List<int>();
List<int> list2 = new List<int>();

List<int> list3 = list1 & list2

When I add some integers in list1, I would like them to appear in list3 as well. I want the same behavior when a new item is added into list2.

A reference of more than one lists.

Is this possible?

Jon Skeet
people
quotationmark

No, you can't do that with List<T> directly. However, you could declare:

IEnumerable<int> union = list1.Union(list2);

Now that will be lazily evaluated - every time you iterate over union, it will return every integer which is in either list1 or list2 (or both). It will only return any integer once.

If you want the equivalent but with concatenation, you can use

IEnumerable<int> concatenation = list1.Concat(list2);

Again, that will be lazily evaluated.

As noted in comments, this doesn't expose all the operations that List<T> does, but if you only need to read from the "combined integers" (and do so iteratively rather than in some random access fashion) then it may be all you need.

people

See more on this question at Stackoverflow