Liste İçeriğini Başka Bir Listeye Ekleme C #


158

Şunlara sahibim:

  1. GlobalStrings adlı ana liste
  2. LocalStrings adında başka bir Liste

Örneğin bir döngüde:

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
akış üzerinde yığın her zaman
— sallanır

2
Yanlış yapıyorsunuz localStrings = new List<string>;, fordöngüden önce yerleştirilmelidir
— Wassim AZIRAR

1
Wassim, bence bu yüzden yerel ve küresel arasında ayrım yapıyor; localStrings for-loop kapsamı için yereldir, GlobalStrings global kapsamdadır.
— Dagrooms

Bu beri belli ki olabilir sadece, (davetiye tamamen Wassim en gibi açıklamaları yanlış fikirli olduğunu) fakir bir örnektir Addiçin GlobalStringsyerine göre localStrings. Ve döngü FWIW sadece 9 kez çalışır. Daha iyi olurdufor (int x = 0; x < 10; ++x) {var localStrings = GetAListOfStrings(); /* append those to GlobalStrings */}
— Jim Balter

Yanıtlar:



55
GlobalStrings.AddRange(localStrings);

Bu işe yarıyor.

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


2
Bir karakter size bir oy verdi. Dikkatli olun, genellikle sizi daha çok kaybeder! (Uyku veya akıl sağlığı gibi.)
— deed02392 23:13

Doğru olsa da, bu cevap şimdi Lee'nin cevabının bir kopyası olarak duruyor.
— Octur

22

AddRange yöntemini deneyin:

GlobalStrings.AddRange(localStrings);

Doğru olsa da, bu cevap şimdi Lee'nin cevabının bir kopyası olarak duruyor.
— Octur

9

Linq ile

var newList = GlobalStrings.Append(localStrings)

3
Ek var gibi değil mi? Bunun için MSDN doc'a bir bağlantınız var mı?
— Pod

2
Belki de bunu kopyalama çok anlamlı olur gerçi ... CONCAT anlamına geliyordu ve nasıl iyi bir örnektir değil LINQ kullanmak.
— Jim Balter

5

İşte benim örnek:

    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

"terse" almak istiyorsanız :)

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

for(int x=1; x<10; x++) GlobalStrings.AddRange(new List<string> { "some value", "another value"});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.