产生元素列表的枚举器

时间:2014-12-14 20:55:54

标签: c# linq yield-return ienumerator

我想创建一个枚举器,它将逐个迭代多个列表元素,返回它们的列表。例如,假设我们有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]);
        }
    }

}

0 个答案:

没有答案