C# 入門 & 実践 / C sharp
4-10. [ ジェネリック/コレクション ] 4. List<T> の使用
配列を使うか List<T> を使うか?
固定長でなければならない場合は、配列を使うのですが、だいたい List<T> でいいような気がします。
List<T> は、数が増えれば自動的にサイズを大きくしてくれます。
class BbHello
{
private string name = "";
public BbHello(string name)
{
this.name = name;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
class Tester
{
static void Main()
{
List<BbHello> bblist = new List<BbHello>();
// 5 個要素を追加
for (int i = 0; i < 5; i++)
{
bblist.Add(new BbHello("Hello No." + i.ToString() ));
}
Console.WriteLine("Count : {0}", bblist.Count);
Console.WriteLine("Capacity : {0}", bblist.Capacity);
foreach (BbHello bx in bblist)
{
Console.WriteLine("Hello : {0}", bx.Name);
}
// さらに 5 個追加
for (int i = 0; i < 5; i++)
{
bblist.Add(new BbHello("Hello No." + i.ToString()));
}
Console.WriteLine("Count : {0}", bblist.Count);
Console.WriteLine("Capacity : {0}", bblist.Capacity);
// さらに 10 個追加
for (int i = 0; i < 10; i++)
{
bblist.Add(new BbHello("Hello No." + i.ToString()));
}
Console.WriteLine("Count : {0}", bblist.Count);
Console.WriteLine("Capacity : {0}", bblist.Capacity);
}
}
Listオブジェクト生成部分もListの要素のインスタンスを書いてあげるだけなので簡単ですね!
List<BbHello> bblist = new List<BbHello>();
Count : 5
Capacity : 8
Hello : Hello No.0
Hello : Hello No.1
Hello : Hello No.2
Hello : Hello No.3
Hello : Hello No.4
Count : 10
Capacity : 16
Count : 20
Capacity : 32
さらに 要素を追加していくと Capacity が 8 → 16 → 32 に自動的に増えてますね!^-^。
4-9. [ ジェネリック/コレクション ] 3. 制約 «
4. C# 入門 Level 2 »
4-11. [ ジェネリック/コレクション ] 5. IComparable インターフェイスの実装!独自のクラスをSort!
C# 入門 & 実践 / C sharp