- - PR -
C#におけるスプレッドのセルへのアクセス方法(二次元配列)
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-08 13:02
現在、VS2008のC#を使用し、Spread2.5(Windows)の使用方法を検討しております。
セルへのアクセス方法で,、以下のように二次元配列として入れることはできるのですが、 Spread.ActiveSheet.Cells[ii, jj].Value ="" 二次元配列はパフォーマンスが悪いという欠点があり、配列をやめたいと思っています。 スプレッドのヘルプを見たのですが、見つかりませんでした。どなたかご存じですか? | ||||||||||||
|
投稿日時: 2008-02-08 13:35
回答ではなく質問なのですが、「二次元配列はパフォーマンスが悪い」というのはどういうことですか?そういう話を聞いたことがないんですが。
それとも、ハマリーさんが二次元配列と二次元配列でないものを実際に比較してみた結果でしょうか。 | ||||||||||||
|
投稿日時: 2008-02-08 13:42
もしかすると、データバインドを使用した場合と、データバインドを使用せず
セルに1つ1つ値を置いていった場合との差のことを指しているのでしょうか? | ||||||||||||
|
投稿日時: 2008-02-08 14:23
そもそも二次元配列と '何を' 比べてのお話でしょうか? 二次元配列とニ段階配列 (多段階配列) を比べてのお話でしょうか? それともコレクションと比べた場合のお話ですか? それと確認ですが、'どの場面での' パフォーマンスでしょうか?
本当にこの場面でのお話でよろしいのでしょうか? だとすると、Cells は二次元配列ではないような気がするので前提から間違っているように思えます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2008-02-08 14:50
>Cells
確かに二次元配列と同じようなアクセス方法ですけど 実際はC#のインデクサによってそれっぽくしてあるだけですよ。 つまり内部的には普通にメソッドを呼び出しているのと同じ。 そのインデクサの実装が二次元配列を使っているということはありえますが そこはユーザーがなんとかできるところでもないでしょう。 | ||||||||||||
|
投稿日時: 2008-02-08 15:00
FarPoint 製品はご無沙汰で自信がなかったので、一応調べてみました。
ActiveSheet プロパティは FarPoint.Win.Spread.SheetView 型であることがわかります。
Cells プロパティは FarPoint.Win.Spread.Cells 型であることがわかります。
Cells クラスは FarPoint.Win.Spread.Cell クラスのコレクションであり、インデクサがありそうなことがわかります。 結論: Spread.ActiveSheet.Cells[i, j] は引数 2 つを持つインデクサ (プロパティ) アクセサです。 また Cells はコレクション プロパティです。 二次元配列ではありません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2008-02-08 16:25
返答が遅くなりすいません。
スプレッドと関係ないんですが、 二次元配列[xx,yy]←→配列の配列[xx][yy] のコードを作成して逆アセンブルすると[xx,yy]のほうがオーバーヘッドが大きいように見えました。 スプレッドは二次元配列に見えるだけで実際は中で違うとは 知りませんでした。たくさんの返信ありがとうございます。 |
1