我想创建一个枚举器,它将逐个迭代多个列表元素,返回它们的列表。例如,假设我们有3个列表,枚举器将首先在索引0处生成元素,然后在索引1处生成元素,依此类推。
到目前为止,我有下面的代码,但它不起作用,只返回第一个元素。我怎样才能做到这一点?这甚至可能吗?
private class Merger : IEnumerable
{
private readonly List<List<string>> paths;
private readonly int maxPathLength;
public Merger(List<List<string>> paths)
{
this.paths = paths;
maxPathLength = paths.Max(x => x.Count);
}
public IEnumerator GetEnumerator()
{
for (int i = 0; i < maxPathLength; i++)
{
yield return paths.Select(x => x[i]);
}
}
}