
目次
C#でのListの使い方について、紹介していきたいと思います。
List型は、配列ととてもよく似ています。
指定した型のデータを格納して、インデックス(何番目)を指定することで、格納したデータを取得することができます。
書き方はプログラミング言語ごとに異なりますが、C#だけではなく、様々な言語で使用する型なのでそれだけ大切ということなので
是非使い方を覚えておきましょう。
それでは、さっそく使い方を見てみましょう。
Listの使い方
初期値を持たせる
List<string> str_list = new List<string>() { "きりん", "ぞう", "くま" };
リストの中に格納する変数の型を指定して初期化を行います。
これで、配列と同じように0番目から順番に、0番目、1番目、2番目に値が格納されています。
Listの初期値を持たせたいときは、intの場合も同じように書くことで使用できます。
List<int> int_list = new List<int>() { 1, 2, 3 };
Add 要素を追加
先ほどは、Listを宣言した時から、要素を持たせていましたが、次は、空のListを宣言し、そこに要素を追加してみましょう。
要素を追加するには、Addを使用します。
List<string> str_List = new List<string>();
str_List.Add("きりん");
str_List.Add("ぞう");
str_List.Add("くま");
これで、先ほど宣言したListと同じ内容のListが作成されました。
要素の取得
格納した要素を、取得する方法を紹介します、、と言ってもとても簡単です。
str_List[0]
List(インデックス)で取得できます。例の場合は、0番目の要素なので、"きりん"が取得できています。
基本的な使い方は、以上になりますが、Listには、様々なメソッドが用意されており、使用するとListのデータを加工できるので、
紹介していきます。実際の仕事でもよくListを加工する必要があるので、覚えておきましょう。
Listの便利な加工方法
Insert 指定した位置に要素を追加
指定した位置に要素を追加したい場合は、Insertを使用します。
List.Insert(インデックス、要素の値)
//初期化
List<string> str_List = new List<string>();
//リストに要素を追加
str_List.Add("きりん");
str_List.Add("ぞう");
str_List.Add("くま");
//指定した位置に要素を追加
str_List.Insert(1, "ねずみ");
foreach (string list in str_List)
{
Console.WriteLine(list);
}
//結果
きりん
ねずみ
ぞう
くま
結果を見ると、"きりん"、"ぞう"の間に"ねずみ"が格納されました。
Contains リストの要素 存在確認
リストの要素に指定した値が格納されているか確認する方法を紹介します。
List.Contains(要素の値)
とすることで、要素があればTrue、なければFalseが返却されます。
List<string> str_list = new List<string>() { "きりん", "ぞう", "くま" };
//存在確認
if (str_list.Contains("きりん") == true)
{
MessageBox.Show("きりんは存在します");
}
きりんはListに含まれているので、メッセージボックスが表示されます。
Containsは覚えておくととても便利ですよ。
Clear Listのクリア
Listの要素を全て削除する方法を紹介します。List.Clear()で削除できます。
List<string> str_list = new List<string>() { "きりん", "ぞう", "くま" };
str_list.Clear();
RemoveAt 指定した要素のみ削除
Listの指定した要素のみ削除する方法を見てみましょう。
List.RemoveAt(インデックス);
List<string> str_list = new List<string>() { "きりん", "ぞう", "くま" };
str_list.RemoveAt(0);
if (str_list.Contains("きりん") == true)
{
MessageBox.Show("きりんは存在します");
}
else
{
MessageBox.Show("きりんは存在しません");
}
結果
Listの1つ目の要素を削除しているので、"きりんは存在しません"とメッセージが表示されます。
Sort 要素の並べ替え 昇順
Listの内容を昇順に並べたい時の方法を紹介します。
昇順とは、小さい値から大きい値へ並べ替えることです。
List.Sort();
List<int> int_list = new List<int>() { 3,2,1 };
int_list.Sort();
foreach (int list in int_list)
{
Console.WriteLine(list);
}
初期値は、3,2,1で格納していましたが、結果は1,2,3で出力されます。
Reverse 要素の並べ替え 降順
Listの内容を降順に並べたい時の方法を紹介します。
降順とは、大きい値から小さい値へ並べ替えることです。
List.Reverse();
List<int> int_list = new List<int>() { 1, 2, 3 };
int_list.Reverse();
foreach (int list in int_list)
{
Console.WriteLine(list);
}
Listを入れ子にする
最後に、Listの要素をListにする方法を紹介します。
Listの要素をListにするので、イメージとしては、2次元配列みたいな感じになります。
少しややこしいと思うので、初心者の方は、ふーんくらいで大丈夫ですよ。
それでは、さっそく例を見てみましょう。
List<List<string>> listmain = new List<List<string>>();
List<string> str_list = new List<string>() { "きりん", "ぞう", "くま" };
List<string> str_list2 = new List<string>() { "A", "B", "C" };
listmain.Add(str_list);
listmain.Add(str_list2);
foreach(List<string> strlist in listmain)
{
foreach(string str in strlist)
{
Console.WriteLine(str);
}
}
結果
きりん
ぞう
くま
A
B
C
解説
1行目:List<List<string>> listmain = new List<List<string>>();で List型の要素がListの変数を作成しています。(親要素)
3~4行目:格納するリストの型です。(子要素)
6~7行目:親リストに子リストを格納
こんな感じで、Listを入れ子にして使用することができます。
まとめ
今回はListを紹介しました、Listはとてもべんりなので是非参考にしてください。
Listは、データの加工がしやすいので、とてもおすすめです。