Tambahkan Konten Daftar ke Daftar lain C #


158

Saya memiliki yang berikut ini:

  1. Daftar utama yang disebut GlobalStrings
  2. Daftar lain disebut localStrings

Dalam satu lingkaran misalnya:

List<string> GlobalStrings = new List<string>(); 
List<string> localStrings = new List<string>();
for(x=1;x<10;x++)
{
    localStrings.Add("some value"); 
    localStrings.Add("some value");
}
// Want to append localStrings to GlobalStrings as easily as possible

3
tumpukan selalu mengalir ... pertanyaan bagus ...
Sangram Nandkhile

2
Anda melakukan itu salah, localStrings = new List<string>;harus ditempatkan sebelum forloop
Wassim AZIRAR

1
Wassim, saya pikir itu sebabnya dia membedakan antara lokal dan global; localStrings adalah lokal untuk lingkup for-loop, GlobalStrings berada dalam lingkup global.
Dagrooms

Ini adalah contoh yang buruk (yang mengajak benar-benar salah arah komentar seperti Wassim ini), karena jelas Anda hanya bisa Adduntuk GlobalStringsbukan ke localStrings. Dan FWIW you loop hanya berjalan 9 kali. Lebih baikfor (int x = 0; x < 10; ++x) {var localStrings = GetAListOfStrings(); /* append those to GlobalStrings */}
Jim Balter

Jawaban:



55
GlobalStrings.AddRange(localStrings);

Itu bekerja.

Dokumentasi: List<T>.AddRange(IEnumerable<T>).


2
Satu karakter kehilangan Anda sebagai pendukung. Berhati-hatilah, sering kali Anda kehilangan lebih banyak! (Seperti tidur atau kewarasan.)
deed02392

Meskipun benar, jawaban ini sekarang merupakan duplikat dari jawaban Lee.
Cœur

22

Coba metode AddRange:

GlobalStrings.AddRange(localStrings);

Meskipun benar, jawaban ini sekarang merupakan duplikat dari jawaban Lee.
Cœur

9

Dengan Linq

var newList = GlobalStrings.Append(localStrings)

3
Tambah sepertinya tidak ada? Apakah Anda memiliki tautan ke MSDN doc untuk itu?
Pod

2
Mungkin Anda maksudkan Concat ... meskipun itu berarti banyak menyalin, dan merupakan ilustrasi yang bagus tentang bagaimana tidak menggunakan LINQ.
Jim Balter

5

Ini contoh saya:

    private List<int> m_machinePorts = new List<int>();

    public List<int> machinePorts
    {
        get { return m_machinePorts; }
    }

    Init()
    {
        // Custom function to get available ethernet ports
        List<int> localEnetPorts = _Globals.GetAvailableEthernetPorts();

        // Custome function to get available serial ports
        List<int> localPorts = _Globals.GetAvailableSerialPorts();

        // Build Available port list 
        m_machinePorts.AddRange(localEnetPorts);
        m_machinePorts.AddRange(localPorts);
     }

2

jika Anda ingin mendapatkan "singkat" :)

List<string>GlobalStrings = new List<string>(); 

for(int x=1; x<10; x++) GlobalStrings.AddRange(new List<string> { "some value", "another value"});
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.