C#で値のリストを作成する簡単な方法は?


106

C#で値のリストを作成する簡単な方法を探しています。Javaでは、以下のスニペットを頻繁に使用します。

List<String> l = Arrays.asList("test1","test2","test3");

以下の明らかなものを除いて、C#に相当するものはありますか?

IList<string> l = new List<string>(new string[] {"test1","test2","test3"});

回答:



19

煩雑さを軽減したい場合は、

var lst = new List<string> { "foo", "bar" };

これは、C#3.0の2つの機能を使用します。型推論(varキーワード)とリストのコレクション初期化子です。

あるいは、配列で間に合わせることができる場合、これはさらに短くなります(少し):

var arr = new [] { "foo", "bar" };

2
通常、初期化に必要な文字数が少ないデータ構造に基づいてデータ構造を選択することはしません...
Harrichael

1
@Harrichaelそうですね、私もそうです。しかし、リストが必要でない限り、リストを使用する理由はありません。
Konrad Rudolph

10

C#3では、次のことができます。

IList<string> l = new List<string> { "test1", "test2", "test3" };

これは、C#3の新しいコレクション初期化構文を使用します。

C#2では、2番目のオプションを使用します。


Nitpick:オブジェクト初期化子ではなく、コレクション初期化子。
Timwi、2012年




3

あなたはそれを行うことができます

var list = new List<string>{ "foo", "bar" };

他の一般的なデータ構造の他の一般的なインスタンス化は次のとおりです。

辞書

var dictionary = new Dictionary<string, string> 
{
    { "texas",   "TX" },
    { "utah",    "UT" },
    { "florida", "FL" }
};

配列リスト

var array = new string[] { "foo", "bar" };

キュー

var queque = new Queue<int>(new[] { 1, 2, 3 });

スタック

var queque = new Stack<int>(new[] { 1, 2, 3 });

大部分のケースでわかるように、中括弧で値を追加するか、中括弧と値が続く新しい配列をインスタンス化するだけです。


1

リストを作成するためのヘルパージェネリックな静的メソッドを作成できます。

internal static class List
{
    public static List<T> Of<T>(params T[] args)
    {
        return new List<T>(args);
    }
}

そして、使用法は非常にコンパクトです:

List.Of("test1", "test2", "test3")

1

値付きの型付きリストを作成する場合、構文は次のとおりです。

生徒のクラスが

public class Student {
   public int StudentID { get; set; }
   public string StudentName { get; set; }
 }   

次のようなリストを作成できます。

IList<Student> studentList = new List<Student>() { 
                new Student(){ StudentID=1, StudentName="Bill"},
                new Student(){ StudentID=2, StudentName="Steve"},
                new Student(){ StudentID=3, StudentName="Ram"},
                new Student(){ StudentID=1, StudentName="Moin"}
            };

-5

値のリストはすぐに?またはオブジェクトのリストも!

私はC#言語の初心者ですが、

  • ハッシュ表
  • 配列リスト
  • データ表
  • データセット

アイテムを保存する方法が多すぎる

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.