2009-07-20 4 views
3

2次元(この時点では不揃い)のオブジェクト配列を作成したいと思います。.Net 3.5以上の多次元データ構造の処理

2次元配列[、]を簡単に作成できます。これは、使用可能な最良のオプションですが、.NETのリストとディクショナリ構造の高度な機能を利用する配列を避ける傾向があります。

私も2次元配列を格納するためのリスト<一覧<T> >を使用することができますが、任意のベストプラクティスや実装データ構造は型付き2を処理するために、上記の.NET 3.5またはであったかと思いまし

- のn次元配列よりも柔軟性の高い/包括的な機能を持つ構造?

私はSSAS/OLAPスタイルの回答には興味がありません。

答えて

1
  • 2次元配列は本当にうまくいくでしょう。最小量のRAMを消費し、検索時間が最も速くなります。あなたはデータなど
にアクセスする必要がどのようにそれは一般的に依存しすぎてうまくいくでしょう読み取り専用データとよく
  • リストのリスト、またはリストの辞書、または配列の辞書、あるいは辞書の辞書を働くだろう
  • 1

    アレイCLI基本データ型のいずれかです。ただし、 "SzArray"(一次元、0ベースのインデックス作成)が最も高速です。表示されているのはint[]です。いずれにしても、固定サイズのデータ​​セットを使用すると、配列(1次元または多次元)が最高のパフォーマンスを発揮します。

    内部最適化により、2次元配列が1次元配列の行メジャーインデックスを手動で使用するよりも速くなった場合、私は全く驚くことはありません。私はそれが別の方法であれば驚かないだろう。この問題が重大な場合は、品質プロファイラを使用するようにしてください(いずれの方法も実用には速いはずですが、ここでは行列の数学を話しています)。