-1

FarPoint スプレッド行またはセルに linq を適用できるように、FarPoint.Win.Spread.FpSpreadクラスを継承して実装しようとしています。IEnumerable<FarPoint.Win.Spread.Row>複数の方法を試しましたが、エラーが発生し続けます:

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();
    }
}

2 回目の試行:

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();
    }
}

3 回目の試行:

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、これはおそらくあなたが望んでいることではありません。

クラスでアクティブ シートの行の列挙を提供する必要があると仮定します。ドキュメントhere、特に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;
    }

IEnumerable<Row>ただし、FarPoint のドキュメントには、コレクションでのサポートは示されていません。

于 2013-12-03T06:07:45.833 に答える