2011-03-18 6 views
0

私は、多かれ少なかれ同等のC++ std::vectorに.NET 3.5クラスが必要:1つのタイプのオブジェクトの可変長配列に使用する.net 3.5コレクションはどれですか?

  • は、オブジェクトの種類が含まれていたインデックス
  • によって
  • 固定ランダムアクセスである空のコンテナを作成し、 を必要に応じてオブジェクトを追加することができます

以前私はArrayListを使用していましたが、それはobjectを格納していますが、取り出したオブジェクトを適切な型にキャストしなければならず、そこに何か追加することができますコンパイル時の型チェックが難しくなります。

ArrayListのようなものはありますか?あなたのタイプに置き換え

答えて

5

あなたはList<T>後にしているように聞こえます。あなたがIEnumerable<T>ICollection<T>またはIList<T>経由ではなく、具体的なタイプを経由してこのようなリストを公開したいと思うかもしれ

List<int> integers = new List<int>(); 
integers.Add(5); // No boxing required 
int firstValue = integers[0]; // Random access 

// Iteration 
foreach (int value in integers) 
{ 
    Console.WriteLine(value); 
} 

注:たとえば、整数のリストを作成します。

これらは.NET 3.5で導入されました(これはジェネリックが機能として導入された時です)。しかし、.NET 3.5には、あらゆる種類のシーケンスで簡単に作業できるLINQがあります。

IEnumerable<int> evenIntegers = integers.Where(x => x % 2 == 0); 

(さらにはそれ以上)

4

List<T>

T

// Create an empty List<int> 
List<int> numbers = new List<int>(); 
numbers.Add(4); 

// Use the c# collection initializer to add some default values; 
List<int> numbersWithInitializer = new List<int> { 1, 4, 3, 4 }; 
関連する問題