C#でリストを空の状態で初期化する方法【Any()による空チェックも解説】
C#でList<T>を空のリストとして初期化するには、要素を一切持たない状態でインスタンスを生成します。最も基本的な書き方は以下のとおりです。
List<string> list = new List<string>();
このように記述することで、文字列型の要素を0個持つ空のリストが作成されます。初期化子を使って new List<string>() { } と書いても結果は同じです。
リストが空かどうかを確認する方法
初期化したリストが本当に空かどうかを判定するには、LINQのAny()メソッドを使用します。Any()はリストに要素が1つでも存在すればtrueを返すため、その否定(!)を取ることで「リストが空であること」を判定できます。
bool chk = !list.Any();
なお、list.Count == 0 で判定する方法もあります。要素数だけを確認する場合はこちらの方が高速ですが、LINQを使ったAny()は意図が明確で読みやすいというメリットがあります。
サンプルコード
ここまでの内容をまとめた完全なコード例が以下です。
using System;
using System.Collections.Generic;
using System.Linq;
public class Program {
public static void Main() {
// 空のリストを初期化
List<string> list = new List<string>();
// リストが空かどうかをチェック
bool chk = !list.Any();
if(chk) {
Console.WriteLine("List is Empty!");
} else {
Console.WriteLine("List isn't Empty!");
}
}
}実行結果
List is Empty!
リストに要素が1つも追加されていないため、「リストは空です」というメッセージが出力されます。
補足:C# 12以降のコレクション式
C# 12以降では、コレクション式を使ってより簡潔に空のリストを初期化することも可能です。
List<string> list = [];
状況に応じて使い分けることで、より可読性の高いコードを書けますので、ぜひ覚えておきましょう。
-
Java 9で不変コレクションを初期化する方法!List.of()・Set.of()・Map.of()の使い方
Java 9のファクトリメソッドによる不変コレクションの作成 Java 9では、List・Set・Mapの各インターフェースに静的ファクトリメソッドが追加され、不変(イミュータブル)なコレクションを非常に簡単に作成できるようになりました。空のコレクションでも要素を持つコレクションでも、たった1行で初期化できるのが大きな魅力です。 Java 8以前のバージョンでは、Collections.unmodifiableList()のようなユーティリティメソッドを使って不変コレクションを作成していました。ただしこの方法では、まず可変のコレクションを生成して要素を追加し、その後でラップするという手順が必要
-
Pythonで空のリストを作成する方法|[]とlist()の2つの基本テクニック
Pythonでプログラムを書いていると、「まず空のリストを用意しておいて、あとからデータを追加していきたい」という場面によく出会います。たとえば、forループで条件に合う要素だけを集めるときや、ユーザー入力を順次蓄積するときなどが代表例です。 Pythonで空のリストオブジェクトを作成する方法は、大きく分けて2つあります。1つ目は、代入文で角括弧 [] の中に何も要素を書かない方法。2つ目は、組み込み関数 list() を引数なしで呼び出す方法です。 方法1:角括弧 [] を使って空のリストを作る 最もシンプルで広く使われているのがこの書き方です。角括弧の中を空にして代入するだけで、空のリ