Cara cepat untuk membuat daftar nilai di C #?


106

Saya mencari cara cepat untuk membuat daftar nilai di C #. Di Java saya sering menggunakan potongan di bawah ini:

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

Apakah ada padanan dalam C # selain yang jelas di bawah ini?

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

Jawaban:



19

Jika Anda ingin mengurangi kekacauan, pertimbangkan

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

Ini menggunakan dua fitur C # 3.0: jenis inferensi ( varkata kunci) dan penginisialisasi koleksi untuk daftar.

Alternatifnya, jika Anda bisa puas dengan sebuah array, ini bahkan lebih pendek (dengan jumlah yang kecil):

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

2
Saya biasanya tidak akan memilih struktur data saya berdasarkan mana yang membutuhkan lebih sedikit karakter untuk diinisialisasi ...
Harrichael

1
@Harrichael Benar, dan saya juga tidak. Tetapi kecuali Anda membutuhkan daftar, tidak ada alasan untuk menggunakannya.
Konrad Rudolph

10

Di C # 3, Anda dapat melakukan:

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

Ini menggunakan sintaks penginisialisasi koleksi baru di C # 3.

Dalam C # 2, saya hanya akan menggunakan opsi kedua Anda.


Nitpick: penginisialisasi koleksi, bukan penginisialisasi objek.
Timwi


5

Anda dapat menjatuhkan new string[]bagian:

List<string> values = new List<string> { "one", "two", "three" };


3

Anda bisa melakukannya dengan

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

Berikut beberapa contoh umum lainnya dari Struktur Data umum lainnya:

Kamus

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

Daftar array

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

Antre

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

Tumpukan

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

Seperti yang Anda lihat untuk sebagian besar kasus, ini hanya menambahkan nilai dalam tanda kurung kurawal, atau membuat instance array baru diikuti dengan tanda kurung kurawal dan nilai.


1

Anda dapat membuat helper generik, metode statis untuk membuat daftar:

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

Dan penggunaannya sangat ringkas:

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

1

Jika Anda ingin membuat daftar yang diketik dengan nilai, berikut sintaksnya.

Menganggap sekelas pelajar seperti

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

Anda bisa membuat daftarnya seperti ini:

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

Daftar nilai dengan cepat? Atau bahkan daftar objek!

Saya hanya pemula di bahasa C # tapi saya suka menggunakan

  • Hashtable
  • Arraylist
  • Tabel data
  • Set data

dll.

Ada terlalu banyak cara untuk menyimpan item

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.