C#列出两个参考?

NiT*_*C57 3 c# reference list

我需要2个单独的列表和一个包含这两个列表的项目的列表.

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

List<int> list3 = list1 & list2
Run Code Online (Sandbox Code Playgroud)

当我在list1中添加一些整数时,我希望它们也出现在list3中.将新项添加到list2时,我想要相同的行为.

多个列表的引用.

这可能吗?

Jon*_*eet 8

不,你不能List<T>直接做到这一点.但是,您可以声明:

IEnumerable<int> union = list1.Union(list2);
Run Code Online (Sandbox Code Playgroud)

现在这将被懒惰地评估 - 每次迭代时union,它将返回任一个list1list2(或两者)中的每个整数.它只会返回任何整数一次.

如果您想要等效但具有连接,则可以使用

IEnumerable<int> concatenation = list1.Concat(list2);
Run Code Online (Sandbox Code Playgroud)

再次,这将被懒惰地评估.

正如评论中所指出的,这并没有公开所有的操作List<T>,但是如果你只需要从"组合整数"中读取(并且以迭代方式而不是以某种随机访问方式进行读取)那么它可能就是你所需要的.