2011-12-04 9 views
0

私は比較的CLIの方が新しいので、int値の配列を保持する必要があり、拡張可能(動的)である必要があります。 ArrayListは "オブジェクト"ではないため、intを好きではありません。動的整数配列のCLI

intまたはdoubleを保持するArrayListに相当するものは何ですか?

EDIT:Oh lord。私は今日、私の試合から離れている。 intに問題はありません。配列をインデックス化するときにintに型キャストする必要があります。あなたの時間を無駄にして申し訳ありません...

+0

Integerクラスを使用できますか? – slugonamission

+0

CLIの整数クラスはありません。私はUInt32を使ってみました。だから、私を正しい方向に向けることに感謝します!私はあなたにバンプを与えることができるように実際の答えを投稿してください。 – Jin

答えて

1

この質問はあまりにも開いているようです。私が答えることができる最高ののは、一般的なリスト(System.Collections.Generic.List)か整数のボックスを使うことができます。その場合、それらはオブジェクトとして動作します。あなたはILを書いていますか?コンパイラ?私は、このようなUInt32型やのInt32として、int型の「クラス」のいずれかの形式を使用して、頼まれたとして

+0

ArrayListは、私が使用しようとした拡張可能な配列クラスです。 intをArrayListに追加しようとすると、コンパイラエラーが発生します。 Intの代わりにInt32を使用するように提案しました。それはそれを行う良い方法ではありませんか?オーバーヘッドが多いですか?これはコンパイラ用ではありませんが、速度が重要です。しかし、これはプロトタイプなので、私はおそらくストレートC + +にスピード(とCLIでそれをラップする)が動作しているので、速度は私の今の主な懸念ではありません。あなたは何を言っているのですか? – Jin

+0

intとInt32は文字通り同一です。 C#コンパイラはintをエイリアスとして使用します。あなたがアセンブリを見ると、それらは同じになるでしょう。ちょうどあなたが進むことを知っている;) –

0

。私は、ジョンの答えがこれよりも良く、記憶からは、正しく働くことを確信しています。

+0

intはInt32の単なるエイリアスです。 .Netには、Javaにあるような整数の「クラス」形式はありません。その代わりに、値の型(割り当てられたスタック)は、「ボクシング」と呼ばれるプロセスによってヒープに移動されます。たとえば、 'object o = 3;'と入力すると、自動的に値3が囲まれてヒープに配置されます。後で、int( '(int)o')にキャストすると、unboxされます。 –

1

あなたはC++における "拡張可能配列" のようなものは存在しない

System.Collections.Generic.List<int> 

を必要としています。

+0

Meant managed C++は特にCLIとは呼ばれていませんか? – Jin

+0

@Dedic:C#に関するtypoですが、同じ回答 - 'List 'を使う必要があります。 – Mehrdad

+0

あなたは_need_する必要はありませんが、これはより効果的で、あなたの人生を楽にします。 –