什么(如果有的话)是Python的itertools.chain方法的C#等价物?
Python示例:
l1 = [1, 2]
l2 = [3, 4]
for v in itertools.chain(l1, l2):
print(v)
Run Code Online (Sandbox Code Playgroud)
结果:
1
2
3
4
请注意,我对制作一个结合前两个然后处理它的新列表不感兴趣.我想通过不实例化这个组合列表来节省itertools.chain提供的内存/时间.
您可以使用LINQ中的Concat扩展方法在C#上执行相同的操作:
l1.Concat(l2)
Run Code Online (Sandbox Code Playgroud)
LINQ使用延迟执行模型,因此不会创建新列表.
Enumerable.Concat(MSDN)
var l1 = new List<int>() { 1, 2 };
var l2 = new List<int>() { 3, 4 };
foreach(var item in Enumerable.Concat(l1, l2))
{
Console.WriteLine(item.ToString())
}
Run Code Online (Sandbox Code Playgroud)