C# 組込み型Listの簡単な使用方法を紹介します。
入門者の方でコピペしてコードを動かしてみたい方や、久しぶりにC#をさわる方などの参考になればうれしいです。
- リストの宣言・初期化
- リストの要素の追加
- リストのコピー
- リスト同士の結合
- リストの要素の削除
注意
本記事では、エラー・例外など詳細な使用方法については説明していません。
利用する際は自己責任でお願いします。
環境
想定する使用環境は以下です。(VisualStudio 2019 のデフォルトです)
はじめに
サンプルコードは、以下の自動生成されるコードに貼り付けて使用します。
VisualStudio で「新しいプロジェクトの作成」-> 「コンソールアプリ(.NET Framework)」を選択し、以下のコードを自動生成してください。
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// ------------------------------------
//
// この部分にコードを貼り付けます。
//
// ------------------------------------
}
}
}
リストの使い方
宣言・初期化
int型の配列の宣言・初期化方法です。
// 初期化指定なしの宣言です。
List<int> list = new List<int>();
List<int> listCopy = new List<int>();
// 初期化指定ありの宣言です。
List<int> first = new List<int> { 1, 2, 3 };
List<int> second = new List<int> { 4, 5 };
コピー
=(イコール) 演算子でコピーができます。
このコピーは「シャローコピー」の扱いになります。「list」「listCopy」が同じものなるイメージです。コピー後、listCopyに与えた変更は「list」に対しても反映されます。
「中身だけ」コピーして同じものにしない場合については、「ディープコピー」で調べてみてください。
list = listCopy;
結合
AddRange()を使用します。
// リスト同士を結合します
first.AddRange(second);
削除
// 指定した番号のデータを削除します。
// 指定は 0 で始まるので、最大個数(count -1) で最後の要素を削除できます
int count = first.Count();
first.RemoveAt( count - 1 );
まとめと実行結果
上で紹介した各機能の使用例です。
class Program
{
static void Main(string[] args)
{
// 初期化指定なしの宣言です。
List<int> list = new List<int>();
List<int> listCopy = new List<int>();
// 初期化指定ありの宣言です。
List<int> first = new List<int> { 1, 2, 3 };
List<int> second = new List<int> { 4, 5 };
// イコール(=) の演算子でコピーできます。
list = listCopy;
// 要素の追加です
second.Add( 99 );
// リスト同士を結合します
first.AddRange(second);
// 要素の個数を取得します
int count = first.Count();
Console.WriteLine("Firstが保持しているデータは " + count + "個です");
// 要素へのアクセスして表示します
for (int i = 0; i < first.Count(); i++)
{
Console.WriteLine("First " + i + "個目 " + first[i]);
}
// 指定した番号のデータを削除します。
// 指定は 0 で始まるので、個数6-1で最後(5番目)の要素を削除します
first.RemoveAt( count - 1 );
// 要素の個数を取得します
count = first.Count();
Console.WriteLine("Firstが保持しているデータは " + count + "個です");
// 再表示です。
for (int i = 0; i < first.Count(); i++)
{
Console.WriteLine("first " + i + "個目 " + first[i]);
}
// 終了待ちをします。
Console.WriteLine("何かキーを押すと終了します。");
Console.ReadKey();
}
}
実行結果です。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。