始めます-最後から。 収集したデータをすぐにタブレットに持ち込みます。
型なし | タイプ | |
インデックスアクセス、
固定長 | - | インライン配列
(組み込み配列) |
インデックスアクセス、
動的サイズ | 配列リスト
またはJavascript配列 | 一覧 |
キーアクセス | ハッシュテーブル | 辞書 |
JavaScript配列
配列の最も単純で遅いバージョン。 JavaScript(UnityScript)でのみ使用できます。 型なし、動的サイズ。 任意のタイプのオブジェクトを混在させて保存できます。 ただし、これは混乱を招く可能性があり、また(プラグマストリクトを使用する場合)毎回型をキャストする必要があります。
使用法:
UnityScript | C# | |
発表 | var a:Array = new Array(); | - |
追加 | a.Add(アイテム); | - |
アクセス | [i] | - |
削除 | a.RemoveAt(i); | - |
サイズ | 長さ | - |
配列リスト
.Netは、以前のJavascript配列に似た配列タイプですが、UnityScriptとC#の両方で使用できます。 すべて同じ長所と短所がありますが、機能のセットは前のケースよりも豊富です。
使用法:
UnityScript | C# | |
発表 | var a:Array = new ArrayList(); | ArrayList a = new ArrayList(); |
追加 | a.Add(アイテム); | |
アクセス | [i] | |
削除 | a.RemoveAt(i); | |
サイズ | カウント |
組み込み配列
アレイの最速バージョン。 ただし、固定長のハードアレイであるため、中央に要素を挿入することはできません。 ただし、最大のパフォーマンスが必要な場合は、組み込み配列が必要です。 さらに、2次元にすることもできます。
使用法:
UnityScript | C# | |
発表 | var a:int [] = new int [100]; | int [] a = new int [100]; |
追加 | [i] =アイテム; | |
アクセス | [i] | |
削除 | - | |
サイズ | 長さ | |
2D広告 | var a:int [、] = new int [10、10]; | int [、] a = new int [10、10]; |
2Dアクセス | a [x、y] |
MSDNドキュメント: msdn.microsoft.com/en-us/library/system.array%28VS.80%29.aspx
ハッシュテーブル
インデックスではなくキーでアクセスできる型なし配列。 ちなみに、キーも型指定されていません(より正確には、値と同様に、Object型のオブジェクトです)。
使用法:
UnityScript | C# | |
発表 | var a:Hashtable = new Hashtable(); | Hashtable a = new Hashtable(); |
追加 | [[キー]] =アイテム; | |
アクセス | [キー] | |
削除 | a.Remove(キー) | |
サイズ | カウント |
辞書
Hashtableに似ていますが、そのような配列のキーと要素の両方が指定された型である点が異なります。 したがって、このビジネスはより速く動作し、追加の型キャストを必要としません。
使用法:
UnityScript | C# | |
発表 | var a:辞書。<KeyT、ValueT> =新しい辞書。<KeyT、ValueT>(); | 辞書<KeyT、ValueT> a =新しい辞書<KeyT、ValueT>(); |
追加 | [[キー]] =アイテム; | |
アクセス | [キー] | |
削除 | a.Remove(キー) | |
サイズ | カウント |
おわりに
実際、概要プレートは記事の冒頭にありました。
何をアドバイスできますか? 速度が必要-組み込み配列[]を使用します。 そして可能な限り-常に型付き配列を使用します。 これにより、不必要な混乱、型キャスト、速度から保護されます。
また、MSDNの配列クラスがSystem.Collections.Genericパッケージに含まれていることを忘れないでください。そのため、パスを直接指定する(たとえば、新しいSystem.Collections.Generic.List。<int>)か、適切なインポート/使用を記述します。