-1

我正在尝试继承FarPoint.Win.Spread.FpSpread该类并实现IEnumerable<FarPoint.Win.Spread.Row>,以便我应该能够在 FarPoint 扩展行或单元格上应用 linq。我尝试了多种方法,但我不断收到错误:

class myspread : FarPoint.Win.Spread.FpSpread, IEnumerable<FarPoint.Win.Spread.Row>
{
    public IEnumerator<FarPoint.Win.Spread.Row> GetEnumerator()
    {
        return myspread.GetEnumerator();// Error on this line
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

第二次尝试:

class myspread : FarPoint.Win.Spread.Row, IEnumerable<FarPoint.Win.Spread.Row>
{
    public IEnumerator<FarPoint.Win.Spread.Row> GetEnumerator()
    {
        return myspread.GetEnumerator();// Error on this line
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

第三次尝试:

class myspread : FarPoint.Win.Spread.Cells, IEnumerable<FarPoint.Win.Spread.Cells>
{
    public IEnumerator<FarPoint.Win.Spread.Row> GetEnumerator()
    {
        return myspread.GetEnumerator();// Error on this line
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

我希望能够在 FarPoint 工作表上的许多对象上应用 linq

现在上述数据可能在 lacs 中 - 我需要对上述数据进行大量格式化并在某些条件下更新值。我怎样才能做到这一点?

4

1 回答 1

1

在所有情况下,您都表示以下行正在生成错误:

return myspread.GetEnumerator();// Error on this line

如果不了解您的代码的更多信息,我们就无法真正深入了解这一点。看起来您正试图GetEnumerator在类上静态调用该方法myspread,这可能不是您想要的。

我假设您希望您的班级对活动工作表中的行提供枚举。查看此处的文档,特别是Rows集合的文档,我将对它的外观做出一些猜测:

class myspread : FarPoint.Win.Spread.FpSpread,
    IEnumerable<FarPoint.Win.Spread.Row>
{
    public IEnumerable<FarPoint.Win.Spread.Row> GetEnumerator()
    {
        var rows = ActiveSheet.Rows;
        for (int i = 0; i < rows.Count; ++i)
            yield return rows.Item[i];
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

当然,如果Rows实现了集合IEnumerable<Row>,那么这只是一个简单的事情:

    public IEnumerable<FarPoint.Win.Spread.Row> GetEnumerator()
    {
        return ActiveSheet.Rows;
    }

然而,FarPoint 文档并未表明IEnumerable<Row>该集合中的任何支持。

于 2013-12-03T06:07:45.833 回答