C# で値を使用してリストを初期化する

Syed Hassan Sabeeh Kazmi 2023年10月12日
  1. List<T> クラスを使用して、C# で値を持つリストを初期化する
  2. List.Add() メソッドを使用して C# で値を持つリストを初期化する
  3. C# コレクション初期化子を使用して値でリストを初期化する
C# で値を使用してリストを初期化する

このチュートリアルでは、リストを初期化し、その実装の詳細を処理するさまざまな方法について説明します。 C# を使用すると、プログラマはリストをインスタンス化し、new キーワードで初期化し、単一のステートメントでメンバーの割り当てを実行できます。

このチュートリアルの主な目的は、C# 開発者がジェネリック リストと、List<T> コレクション クラスを使用したその実装に慣れることです。 ジェネリック List<T> クラスは System.Collections.Generic 名前空間に属し、.NET Framework で定義されている最も単純なコレクション クラスの 1つです。

リストは、複数のタイプのオブジェクトを格納する機能を備えた要素の単純な順序付きリストを備えています。 C# の List<T> クラスは、ICollectionIEnumerableIListICollection<T>IEnumerable<T>、および IList<T> インターフェイスを実装します。

List<T> クラスを使用して、C# で値を持つリストを初期化する

List<T> クラスの T は、特定の型とのクラスの相互接続性を示す宣言を表します。 リスト クラスの宣言 (List<T> listName; // 宣言) は、どのデータ型を操作して操作するかを明確にします。

listName 変数に一時的に格納される空のリストを初期化するには、デフォルトのコンストラクターで new キーワードを使用します (listName = new List<T>(); // リストの初期化)。 リストのデフォルト容量は 0 アイテムであるため、便利な list.Capacity<T> プロパティを使用してリストに別の容量を割り当てることができます。

リストの容量は可変であり、List<T>.TrimExcess メソッドを使用するか、以下の構文を明示的に設定して、インデックスで簡単かつ効率的にアクセスできるオブジェクトの厳密に型指定されたリストを初期化することで、減らすことができます。 C#.

List<T>.Capacity` property. Use `new List<Type> {Value1, Value2, ..., ValueN};

コード例:

using System;
using System.Collections.Generic;

public class listInitialization {
  public static void Main(string[] args) {
    // array as a parameter
    string[] array = { "value1", "value2", "value3" };

    // list initialization with values
    List<string> expList = new List<string>(array);

    // an alternative approach to initialize a list with values using the `List<T>` class | it is
    // called single-line list initialization with values
    List<string> expListAlt = new List<string>() { "value1", "value2", "value3" };

    // display the `expList` list
    Console.WriteLine("You initialized a list with " + expList.Count + " values.");
  }
}

出力:

You initialized a list with 3 values.

List<T> インターフェイスは、C# の ArrayList クラスに相当する一般的なもので、必要に応じて動的に増やすことができる配列を使用します。 リストの容量は 64 ビット システムで 20 億要素まで増やすことができるため、カスタム同期を実装して、値操作 (読み取りと書き込み) のために複数のスレッドがアクセスできるようにし、ロックによってスレッドの安全性を確保できます。 リスト。

List.Add() メソッドを使用して C# で値を持つリストを初期化する

リストの構文は最初はわかりにくいですが、厳密なメモリやパフォーマンスの制約がない C# プログラムには理想的です。 List.Add() メソッドを使用して、宣言後に新しい要素をリストに追加できますが、宣言時に要素を作成することもできます。

パラメーターなしのコンストラクターを使用して容量 0 の文字列のリストを作成することは、リストの初期化の一般的な方法です。 List クラスの Add() メソッドを使用して、いくつかの文字列値をリストに追加できます。

コード例:

using System;
using System.Collections.Generic;

public class listInitialization {
  public static void Main(string[] args) {
    // using `Add()` method to initialize a list with string values
    List<string> expList = new List<string>();
    expList.Add("value1");
    expList.Add("value2");
    expList.Add("value3");
    expList.Add("value4");
    expList.Add("value5");

    // display the `expList` list
    Console.WriteLine("You initialized a list with " + expList.Count + " values.");
  }
}

出力:

You initialized a list with 5 values.

この方法の最も興味深い点は、リストの容量を自動的にチェックし、必要に応じてサイズを変更することです。 リストの最後に値を追加し、値のインデックスを返すため、容量を簡単に拡張できます。

C# コレクション初期化子を使用して値でリストを初期化する

コレクション初期化子 構文は C# 3.0 で初めて導入され、それ以来、コレクションに値を割り当てるのに役立ちました。 これは、中括弧表記を使用してリストを初期化する短縮構文であり、宣言に関しては、そのすべての値が一度に割り当てられます。

一般に、これは、C# コンパイラが Add() メソッドを複数回呼び出すための簡略表記であることが知られています。 List<string> name = new List<string> を使用してリストを初期化し、中かっこを使用して、オブジェクトを入力することで {new Element() {Id = 1, Name = "first"} のように値を定義できます。 Element クラスの。

個々のオブジェクト初期化子を使用すると、リストを作成し、中かっこで囲み、コンマで区切った値の初期セットをリストに入力できます。 一連の既知の値から C# でリストを作成することは、信じられないほど簡単になりました。

配列リテラル構文と同様に、From キーワードの後に中括弧 {} を使用することで、コレクション初期化子を識別できます。 これは、From キーワードが前に付いた中括弧 {} で囲まれたコンマ区切りの値のリストで構成されます。

コード例:

using System;
using System.Collections.Generic;

public class listInitialization {
  public static void Main(string[] args) {
    // using `C# Collection Initializers` to initialize a list with values
    List<Element> expList = new List<Element>() { new Element() { Id = 1, Name = "value1" },
                                                  new Element() { Id = 2, Name = "value2" },
                                                  new Element() { Id = 3, Name = "value3" },
                                                  new Element() { Id = 4, Name = "value4" } };

    // display the `expList` list
    Console.WriteLine("You initialized a list with " + expList.Count + " values.");
  }
}

// create a class to define list values
public class Element {
  public int Id { get; set; }
  public string Name { get; set; }
}

出力:

You initialized a list with 4 values.

このチュートリアルでは、文字列値を使用してリストを作成および初期化する方法を説明しました。 このチュートリアルでは、値を使用したリストの初期化について完全に紹介し、リストの初期化の主要な概念を明確にするためのコンパイル可能な C# コードの例を示しました。

C# プログラムは、多くの場合、数値の読み取りなどの単純なことを行います。リストを使用すると、これらの項目に遭遇したときに初期化して追加できます。 リストの初期化子は、作成時にコンストラクターを呼び出してから割り当てステートメントを実行せずに、リストのプロパティのアクセス可能なフィールドに値が割り当てられる場合に重要になります。

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

関連記事 - Csharp List