C#のListのサンプルです。
目次
- List<T> クラス
- 要素を追加する (Addメソッド)
- 要素を初期値でセットする
- 要素の位置を指定して要素を取得する
- 要素の位置を指定して要素を置き換える
- 要素数を取得する (Countメソッド)
- 要素を指定して要素を削除する (RemoveAt/Removeメソッド)
- すべての要素を削除する (Clearメソッド)
- 指定の要素があるかを返す (Containsメソッド)
List<T> クラス
- 1次元配列としてデータを保持します。
- インデックスを指定してアクセスできます。
- サイズをあとから動的に変更できます。
- スレッドセーフではありません。
- 以下はMicrosoftのC#のList<T> クラスのリンクです。
https://msdn.microsoft.com/ja-jp/library/6sh2ey19(v=vs.110).aspx
要素を追加する (Addメソッド)
9行目は、Listクラスをインスタンス化しています。
代入する変数はvarで宣言できます。8行目のようにデータの型でも可能です。
11-13行目は、Addメソッドで要素を追加しています。
15-18行目は、for文で値を取得しています。
20-23行目は、foreach文で値を取得しています。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
//List<string> colors = new List<string>();
var colors = new List<string>();
colors.Add("赤");
colors.Add("黄");
colors.Add("青");
for (int i = 0; i < colors.Count; i++)
{
Console.WriteLine(colors[i]);// 赤 黄 青
}
foreach (var a in colors)
{
Console.WriteLine(a);// 赤 黄 青
}
}
}
要素を初期値でセットする
9行目は、Listクラスをインスタンス化し、かつ初期値をセットしています。
11-14行目は、for文で値を取得しています。
16-19行目は、foreach文で値を取得しています。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var colors = new List<string>(){ "赤", "黄", "青" };
for (int i = 0; i < colors.Count; i++)
{
Console.WriteLine(colors[i]);// 赤 黄 青
}
foreach (var a in colors)
{
Console.WriteLine(a);// 赤 黄 青
}
}
}
要素の位置を指定して要素を取得する
14行目は、インデクサー([1])で要素の位置を指定して要素を取得しています。
要素の位置は、赤=0、黄=1、青=2です。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var colors = new List<string>();
colors.Add("赤");
colors.Add("黄");
colors.Add("青");
Console.WriteLine(colors[1]);// 黄
}
}
要素の位置を指定して要素を置き換える
13行目は、インデクサー([1])で要素の位置を指定して要素を置き換えています。
要素の位置は、赤=0、黄=1、青=2です。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var colors = new List<string>();
colors.Add("赤");
colors.Add("黄");
colors.Add("青");
colors[1] = "オレンジ";
foreach (var a in colors)
{
Console.WriteLine(a);// 赤 オレンジ 青
}
}
}
要素数を取得する (Countメソッド)
14行目は、Countメソッドで要素数を取得しています。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var colors = new List<string>();
colors.Add("赤");
colors.Add("黄");
colors.Add("青");
Console.WriteLine(colors.Count);// 3
}
}
要素を指定して要素を削除する (RemoveAt/Removeメソッド)
14行目は、RemoveAtメソッドでインデックスを指定して削除しています。インデックスは0から始まります。
20行目は、Removeメソッドで値を指定して削除しています。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var colors = new List<string>();
colors.Add("赤");
colors.Add("黄");
colors.Add("青");
colors.RemoveAt(0);
foreach (var a in colors)
{
Console.WriteLine(a);// 黄 青
}
colors.Remove("黄");
foreach (var a in colors)
{
Console.WriteLine(a);// 青
}
}
}
すべての要素を削除する (Clearメソッド)
14行目は、Clearメソッドですべての要素を削除しています。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var colors = new List<string>();
colors.Add("赤");
colors.Add("黄");
colors.Add("青");
colors.Clear();
Console.WriteLine(colors.Count);// 0
}
}
指定の要素があるかを返す (Containsメソッド)
14行目は、Containsメソッドで指定の要素があるかを取得しています。
ある場合trueです。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var colors = new List<string>();
colors.Add("赤");
colors.Add("黄");
colors.Add("青");
Console.WriteLine(colors.Contains("青"));// True
}
}
関連の記事