あまねこ TOP  >  スポンサー広告 >  c# >  C#でArrayListを使う

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --年--月--日 --:-- ] カテゴリ:スポンサー広告 | TB(-) | CM(-)

C#でArrayListを使う

C#でもArrayList使いたい人生だった

まず以下をインクルードする必要がある。
using System.Collections;
まとめた

//ArrayListの生成
ArrayList list = new ArrayList();

//ArrayListの末尾に追加
list.Add("hoge");
list.Add("foo");
list.Add("piyo");

//ArrayListの指定位置に挿入
list.Insert(0, "bar");

//インデックスを指定して要素を出力
Console.WriteLine("index2の要素={0}", (String)list[2]);

//指定オブジェクトを検索し、そのインデックスを返す
Console.WriteLine("Aのindex={0}", list.IndexOf("hoge"));

//指定オブジェクトが存在するかどうか
if (!list.Contains("aaaa"))
Console.WriteLine("存在しません");

//指定要素を削除する
list.Remove(2);

//指定インデックスの要素を削除する
list.RemoveAt(0);

//要素数を返す
Console.WriteLine("要素数={0}", list.Count);

//要素のソート(昇順)
list.Sort();

// ArrayListを複製する
ArrayList list2 = (ArrayList)list.Clone();

// 全要素を順に出力
foreach (object obj in list){
Console.WriteLine(obj.ToString());
}
AddやRemoveあたりはJavaと同様だが、一番異なるのは要素を取得したいとき。
例えば今回取得したlist[2]の型は実はStringではなくobject型であるためキャストが必要になる。

最後にArrayListをシャッフルしたい場合。
JavaだとCollections.shuffle(this.arrayList)で一発だがどうもC#のArrayListにはそのような機能がないっぽい。
結局自分でシャッフルする機能を実装するしかない。
例:

public ArrayList shuffle(ArrayList list){
Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks));
for (int i = 0; i < list.Count; i++){
int value = rdm1.Next(list.Count);
object song = list[value];
list[value] = list[0];
list[0] = song;
}
return list;
}


参考リンク(てかそのまんま):
これください(仮称)
Re[7]: ArrayListをランダムにシャッフル
関連記事
[ 2013年06月30日 10:27 ] カテゴリ:c# | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。